Skip to content
Fencer Vulns
high 7.4

CVE-2022-29167 json

ReDoS vulnerability in header parsing in hawk

published 2022-05-05 4 y ago modified 2026-06-17 4 mo ago also GHSA-44pw-h2cw-w3vq , EUVD-2022-2298

cvss
7.4
version 3.1, CNA
cisa kev
Not listed
not in CISA's catalog
epss
1.1%
EPSS 1.1% chance of exploitation in 30 days, percentile 65%
public exploits
0
none known

Summary

Hawk is an HTTP authentication scheme providing mechanisms for making authenticated HTTP requests with partial cryptographic verification of the request and response, covering the HTTP method, request URI, host, and optionally the request payload. Hawk used a regular expression to parse `Host` HTTP header (`Hawk.utils.parseHost()`), which was subject to regular expression DoS attack - meaning each added character in the attacker's input increases the computation time exponentially. `parseHost()` was patched in `9.0.1` to use built-in `URL` class to parse hostname instead. `Hawk.authenticate()` accepts `options` argument. If that contains `host` and `port`, those would be used instead of a call to `utils.parseHost()`.

Patch / fix

  • npm hawk 9.0.1
  • mozilla hawk 9.0.1
  • node-hawk Debian 14, Debian 13, Debian 12 9.0.1-1

debian advisories DEBIAN-CVE-2022-29167

  • node-hawk Ubuntu 18.04 LTS 6.0.1+dfsg-1+deb10u1build0.18.04.1
  • node-hawk Ubuntu 20.04 LTS 7.1.2+dfsg-1ubuntu0.1
  • node-hawk Ubuntu 22.04 LTS 8.0.1+dfsg-1ubuntu0.22.04.1

ubuntu advisories UBUNTU-CVE-2022-29167

Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0

Vendor advisories

What the vendors themselves say about their products: affected, fixed or not affected, and what to do.

red hat product security vex CVE-2022-29167 updated cvss 7.5

hawk: REDoS in hawk.utils.parseHost() when parsing Host header

  • Red Hat .NET Core 5.0 on Red Hat Enterprise Linux rh-dotnet50-dotnet, rh-dotnet50-dotnet-host, rh-dotnet50-dotnet-sdk-5.0, rh-dotnet50-dotnet-hostfxr-5.0, rh-dotnet50-dotnet-runtime-5.0, rh-dotnet50-dotnet-templates-5.0, +6 more Red Hat Enterprise Linux 6 firefox Red Hat Enterprise Linux 7 firefox
    affected: no fix planned “Out of support scope”
  • Red Hat Enterprise Linux 8 firefox, thunderbird Red Hat Enterprise Linux 9 gjs, firefox, firefox-x11, thunderbird Red Hat Fuse 7 hawk
    affected: no fix planned “Will not fix”
  • Red Hat JBoss Data Grid 7 hawk
    affected: no fix planned “Out of support scope”
  • Red Hat Quay 3 quay/quay-rhel8
    affected: no fix planned “Will not fix”
  • Red Hat .NET Core 3.1 on Red Hat Enterprise Linux rh-dotnet31-dotnet, rh-dotnet31-dotnet-host, rh-dotnet31-dotnet-sdk-3.1, rh-dotnet31-dotnet-hostfxr-3.1, rh-dotnet31-dotnet-runtime-3.1, rh-dotnet31-dotnet-templates-3.1, +6 more Red Hat Enterprise Linux 8 dotnet, mozjs60, dotnet3.1, dotnet5.0, dotnet-host, dotnet-sdk-3.1, +18 more Red Hat Enterprise Linux 9 polkit, polkit-libs
    not affected: vulnerable code not present

Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf

CISA SSVC

Exploitation
none
Automatable
no
Technical impact
partial
Assessed
18 mo ago

Exploit prediction

1.10% chance of exploitation in the next 30 days, higher than 65% of all scored CVEs (FIRST EPSS, 2026-11-08).

CVSS scores

assigned by version score vector
CNA 3.1 7.4 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:N/I:N/A:H
NVD 3.1 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
NVD 2.0 5.0 AV:N/AC:L/Au:N/C:N/I:N/A:P
GitHub 3.1 7.4 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:N/I:N/A:H

Affected packages

ecosystem package affected fixed in
npm hawk
<9.0.1
9.0.1

Affected products

  • mozilla hawk

Classification

Weakness
  • CWE-400 Uncontrolled Resource Consumption
  • CWE-1333 Inefficient Regular Expression Complexity

References

Sources

Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.