Gemiddeld · 6.2 Node.js & npm GHSA-ww5h-9m49-7xx4 CVE-2026-107722
fast-jwt: CVE-2026-107722 — RSA→HS256 algoritmeverwarring
Een parsingfout in fast-jwt kan een RSA-publieke sleutel met niet-witruimte vóór de PEM-header als een HMAC-secret classificeren, waardoor die publieke sleutel gebruikt kan worden om HS256-tokens te ondertekenen. De fout is opgelost in fast-jwt 6.3.0. [bronnen: 4097, 31979]
AI-samenvatting
fast-jwt is een npm-implementatie voor JSON Web Tokens. Door een fout die in 6.2.0 werd geïntroduceerd en in 6.3.0 werd verholpen, kan een RSA-publieke sleutel met niet-witruimte vóór de PEM-header niet als PEM herkend worden. Deze misclassificatie kan ertoe leiden dat de openbare sleutelbytes gebruikt worden als HMAC-secret, waardoor door kennis van die bytes ondertekende HS256-tokens worden geaccepteerd. [bronnen: 4097, 31979]
Wat er gebeurde
In releases vanaf 6.2.0 tot de correctie in 6.3.0 kan fast-jwt een PEM-geformatteerde RSA-publieke sleutel niet detecteren als er niet-witruimtekarakters vóór de PEM-header staan. Omdat de detectieroutine witruimte wegtrimt maar de reguliere expressie voor PEM-headers gebonden is aan het begin van de string, kunnen commentaar, controlekarakters, zero-width-tekens of wrapper-tekst de detectie blokkeren en de code naar de HMAC-fallback sturen. Als HS256 is toegestaan of afgeleid, kunnen aanvallers die de publieke sleutelbytes kennen daarmee HS256-tokens ondertekenen die geaccepteerd worden. [bronnen: 4097, 31979]
Technische oorzaak
Het probleem zit in src/crypto.js: performDetectPublicKeyAlgorithms trimt leidende witruimte, maar publicKeyPemMatcher blijft verankerd aan het begin van de string. Die mismatch laat niet-witruimteprefixen PEM-detectie omzeilen en brengt de data in de HMAC-fallback. De aangeschreven CWE is CWE-347. [bronnen: 4097, 31979]
Waarom dit belangrijk is
Als een RSA-publieke sleutel verkeerdelijk als HMAC-secret wordt behandeld, kan iemand die de publieke sleutelbytes kent HS256-tokens vervaardigen die als geldig worden geaccepteerd, wat kan leiden tot omzeiling van authenticatie of autorisatie. De CVSS-basescore is 9.8 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H), wat duidt op hoge impact op vertrouwelijkheid, integriteit en beschikbaarheid. De Patchwire-score is 6.2 en houdt rekening met de CVSS-score en andere factoren zoals ongeauthenticeerde externe impact en geen vereiste gebruikersinteractie. [bronnen: 4097, 31979]
Wie is getroffen
Projecten en diensten die het npm-pakket fast-jwt gebruiken binnen het kwetsbare bereik (geïntroduceerd in 6.2.0 en verholpen in 6.3.0) zijn getroffen. Systemen die HS256-ondertekening accepteren of algoritmes afleiden lopen risico wanneer zij kwetsbare fast-jwt-versies gebruiken voor verificatie of tokenverwerking. [bronnen: 4097, 31979]
Ontdekking en tijdlijn
De advisering is gepubliceerd op 2026-10-08 volgens de bronvermeldingen. Zowel de OSV-entry (4097) als de NVD-entry (31979) documenteren de kwetsbaarheid en de fix-tijdlijn. Het bereik is vastgelegd als geïntroduceerd in 6.2.0 en gefixt in 6.3.0. [bronnen: 4097, 31979]
Getroffen versies
De kwetsbaarheid is geïntroduceerd in fast-jwt 6.2.0 en is verholpen in fast-jwt 6.3.0. [bronnen: 4097, 31979]
Oplossingen en mitigatie
Er is een fix beschikbaar in fast-jwt 6.3.0. Als aanvullende mitigatie vermeldt de advisering dat het beperken van geaccepteerde algoritmen tot alleen asymmetrische algoritmen (dus HS256 verbieden) de aanval voorkomt. [bronnen: 4097, 31979]
Aanbevolen actie
1) Werk fast-jwt bij naar 6.3.0. 2) Als directe upgrade niet mogelijk is: sta alleen asymmetrische algoritmen toe bij JWT-verificatie zodat HS256 niet geaccepteerd wordt. 3) Controleer token-verwerkende endpoints en logs op onverwacht gebruik van HS256. Ga er niet van uit dat publieke sleuteldata veilig als HMAC-secret kan dienen; zorg dat libraries PEM-sleutels correct detecteren. [bronnen: 4097, 31979]
PatchBriefing-score
6.2 / 10 · Gemiddeld
Officiële CVSS: 9.8
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Waarom deze score
CVSS-basescore: 9.8 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H). Patchwire-score: 6.2, berekend op basis van de CVSS-base en aanvullende factoren in de advisering (waaronder ongeauthenticeerde externe impact en geen vereiste gebruikersinteractie). Er zijn geen vermeldingen van bekende exploitatie of een publieke exploit in de bronvermeldingen. [bronnen: 4097, 31979]
Getroffen versies
- fast-jwt ≥ 6.2.0 < 6.3.0
- kwetsbaar
- ≥ 6.3.0
- gepatcht
Gemelde oplossingen
Er is een fix beschikbaar in fast-jwt 6.3.0. Als aanvullende mitigatie vermeldt de advisering dat het beperken van geaccepteerde algoritmen tot alleen asymmetrische algoritmen (dus HS256 verbieden) de aanval voorkomt. [bronnen: 4097, 31979]
Hoe dit rapport is gemaakt
2 bronrecords zijn opgehaald, gekoppeld en gebruikt om het rapport hierboven op te stellen.
-
OSV.dev database
-
NVD (NIST) database
Revisiegeschiedenis
- Gepubliceerd
- Gegenereerd
Gerelateerd
Relevante veranderingen voor de stacks die je volgt.
Kies je stacks, onderwerpen en eventueel WordPress-plugins. Om 07:00 CEST worden passende meldingen en releases uit de rapportageperiode in één e-mail gegroepeerd.
✓ Kies stacks en onderwerpen✓ Pas voorkeuren altijd aan✓ Eén gebundelde e-mail