Ecosyste.ms: Advisories
An open API service providing security vulnerability metadata for many open source software ecosystems.
Security Advisories: MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLXEyNTctdnY0cC1mZzky
Header Forgery in http-signature
Affected versions of http-signature
contain a vulnerability which can allow an attacker in a privileged network position to modify header names and change the meaning of the request, without requiring an updated signature.
This problem occurs because vulnerable versions of http-signature
sign the contents of headers, but not the header names.
Proof of Concept
Consider this to be the initial, untampered request:
POST /pay HTTP/1.1
Host: example.com
Date: Thu, 05 Jan 2012 21:31:40 GMT
X-Payment-Source: [email protected]
X-Payment-Destination: [email protected]
Authorization: Signature keyId="Test",algorithm="rsa-sha256",headers="x-payment-source x-payment-destination" MDyO5tSvin5...
And the request is intercepted and tampered as follows:
X-Payment-Source: [email protected] // Emails switched
X-Payment-Destination: [email protected]
Authorization: Signature keyId="Test",algorithm="rsa-sha256",headers="x-payment-destination x-payment-source" MDyO5tSvin5...
In the resulting responses, both requests would pass signature verification without issue.
[email protected]\n
[email protected]\n
Recommendation
Update to version 0.10.0 or higher.
Permalink: https://github.com/advisories/GHSA-q257-vv4p-fg92JSON: https://advisories.ecosyste.ms/api/v1/advisories/MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLXEyNTctdnY0cC1mZzky
Source: GitHub Advisory Database
Origin: Unspecified
Severity: High
Classification: General
Published: about 6 years ago
Updated: about 1 year ago
CVSS Score: 7.5
CVSS vector: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Identifiers: GHSA-q257-vv4p-fg92, CVE-2017-16005
References:
- https://nvd.nist.gov/vuln/detail/CVE-2017-16005
- https://github.com/joyent/node-http-signature/issues/10
- https://github.com/advisories/GHSA-q257-vv4p-fg92
- https://www.npmjs.com/advisories/318
Blast Radius: 44.7
Affected Packages
npm:http-signature
Dependent packages: 716Dependent repositories: 905,940
Downloads: 96,752,471 last month
Affected Version Ranges: < 0.10.0
Fixed in: 0.10.0
All affected versions: 0.9.0, 0.9.2, 0.9.3, 0.9.4, 0.9.5, 0.9.6, 0.9.7, 0.9.8, 0.9.9, 0.9.10, 0.9.11
All unaffected versions: 0.10.0, 0.10.1, 0.11.0, 1.0.0, 1.0.1, 1.0.2, 1.1.0, 1.1.1, 1.2.0, 1.3.0, 1.3.1, 1.3.2, 1.3.3, 1.3.4, 1.3.5, 1.3.6, 1.4.0