GitHub Advisoryadvisory · npm

GHSA-q257-vv4p-fg92 Header Forgery in http-signature

HIGH Published 2018-11-09 Modified 2023-09-08 Official page ↗
Aliases
CVE-2017-16005
Ecosystem
npm
Packages
http-signature
Severity
High
CVSS vector
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Weaknesses
CWE-20
Reviewed
2020-06-16

Affected packages

• npm http-signature: < 0.10.0 → fixed in 0.10.0

Description

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: ```http 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: ```http 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.

Related

Alias · CVE (1)

  • CVE-2017-16005 Http-signature is a "Reference implementation of Joyent's HTTP Signature Scheme". vulnerability

Weakness · CWE (1)

  • CWE-20 Improper Input Validation weakness

References