{"id":"GHSA-ff5x-w9wg-h275","aliases":[],"status":"published","title":"Holder can generate proof of ownership for credentials it does not control in vp-toolkit","description":"### Impact\nThe [`verifyVerifiablePresentation()`](https://github.com/rabobank-blockchain/vp-toolkit/blob/master/src/service/signers/verifiable-presentation-signer.ts#L97) method check the cryptographic integrity of the Verifiable Presentation, but it does not check if the [`credentialSubject.id`](https://github.com/rabobank-blockchain/vp-toolkit-models/blob/develop/src/model/verifiable-credential.ts#L150) DID matches the signer of the VP proof.\n\nThe **verifier** is impacted by this vulnerability.\n\n### Patches\nPatch will be available in version 0.2.2.\n\n### Workarounds\n- Compute the address out of the `verifiablePresentation.proof.n.verificationMethod` using `getAddressFromPubKey()` from `crypt-util@0.1.5` and match it with the `credentialSubject.id` address from the credential.\n\n### References\n[Github issue](https://github.com/rabobank-blockchain/vp-toolkit/issues/14)\n\n### For more information\nIf you have any questions or comments about this advisory:\n* Discuss in the existing [issue](https://github.com/rabobank-blockchain/vp-toolkit/issues/14)\n* [Contact me](https://github.com/rabomarnix)","facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"published":"2020-03-06T01:15:46Z","modified":"2023-01-09T05:02:21Z","fixes":[{"ecosystem":"npm","package":"vp-toolkit","fixed_in":["0.2.2"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"vp-toolkit","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.2.2"}]}]},{"source":"osv","ecosystem":"npm","package":"vp-toolkit","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.2.2"}]}]}],"references":[{"url":"https://github.com/rabobank-blockchain/vp-toolkit/security/advisories/GHSA-ff5x-w9wg-h275","tags":["web"]},{"url":"https://github.com/rabobank-blockchain/vp-toolkit/issues/14","tags":["web"]},{"url":"https://github.com/rabobank-blockchain/vp-toolkit/commit/18a7db84d3265c6ffa10ef63eb37ae1bd4ba192b","tags":["web"]},{"url":"https://github.com/advisories/GHSA-ff5x-w9wg-h275"}],"sources":{"ghsa":[{"id":"GHSA-ff5x-w9wg-h275","title":"Holder can generate proof of ownership for credentials it does not control in vp-toolkit","description":"### Impact\nThe [`verifyVerifiablePresentation()`](https://github.com/rabobank-blockchain/vp-toolkit/blob/master/src/service/signers/verifiable-presentation-signer.ts#L97) method check the cryptographic integrity of the Verifiable Presentation, but it does not check if the [`credentialSubject.id`](https://github.com/rabobank-blockchain/vp-toolkit-models/blob/develop/src/model/verifiable-credential.ts#L150) DID matches the signer of the VP proof.\n\nThe **verifier** is impacted by this vulnerability.\n\n### Patches\nPatch will be available in version 0.2.2.\n\n### Workarounds\n- Compute the address out of the `verifiablePresentation.proof.n.verificationMethod` using `getAddressFromPubKey()` from `crypt-util@0.1.5` and match it with the `credentialSubject.id` address from the credential.\n\n### References\n[Github issue](https://github.com/rabobank-blockchain/vp-toolkit/issues/14)\n\n### For more information\nIf you have any questions or comments about this advisory:\n* Discuss in the existing [issue](https://github.com/rabobank-blockchain/vp-toolkit/issues/14)\n* [Contact me](https://github.com/rabomarnix)","status":"published","published":"2020-03-06T01:15:46Z","modified":"2023-01-09T05:02:21Z","updated_at":"2026-11-02T14:36:03.040255Z"}],"osv":[{"id":"GHSA-ff5x-w9wg-h275","title":"Holder can generate proof of ownership for credentials it does not control in vp-toolkit","description":"### Impact\nThe [`verifyVerifiablePresentation()`](https://github.com/rabobank-blockchain/vp-toolkit/blob/master/src/service/signers/verifiable-presentation-signer.ts#L97) method check the cryptographic integrity of the Verifiable Presentation, but it does not check if the [`credentialSubject.id`](https://github.com/rabobank-blockchain/vp-toolkit-models/blob/develop/src/model/verifiable-credential.ts#L150) DID matches the signer of the VP proof.\n\nThe **verifier** is impacted by this vulnerability.\n\n### Patches\nPatch will be available in version 0.2.2.\n\n### Workarounds\n- Compute the address out of the `verifiablePresentation.proof.n.verificationMethod` using `getAddressFromPubKey()` from `crypt-util@0.1.5` and match it with the `credentialSubject.id` address from the credential.\n\n### References\n[Github issue](https://github.com/rabobank-blockchain/vp-toolkit/issues/14)\n\n### For more information\nIf you have any questions or comments about this advisory:\n* Discuss in the existing [issue](https://github.com/rabobank-blockchain/vp-toolkit/issues/14)\n* [Contact me](https://github.com/rabomarnix)","status":"published","published":"2020-03-06T01:15:46Z","modified":"2020-02-28T16:38:18Z","updated_at":"2026-11-02T15:46:46.39441Z"}]}}
