CVE-2026-33891
Forge has Denial of Service via Infinite Loop in BigInteger.modInverse() with Zero Input
Forge (also called node-forge) is a native implementation of Transport Layer Security in JavaScript. Prior to version 1.4.0, a Denial of Service (DoS) vulnerability exists in the node-forge library due to an infinite loop in the BigInteger.modInverse() function (inherited from the bundled jsbn library). When modInverse() is called with a zero value as input, the internal Extended Euclidean Algorithm enters an unreachable exit condition, causing the process to hang indefinitely and consume 100% CPU. Version 1.4.0 patches the issue.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
7.5
Forge has Denial of Service via Infinite Loop in BigInteger.modInverse() with Zero Input
Forge (also called node-forge) is a native implementation of Transport Layer Security in JavaScript. Prior to version 1.4.0, a Denial of Service (DoS) vulnerability exists in the node-forge library due to an infinite loop in the BigInteger.modInverse() function (inherited from the bundled jsbn library). When modInverse() is called with a zero value as input, the internal Extended Euclidean Algorithm enters an unreachable exit condition, causing the process to hang indefinitely and consume 100% CPU. Version 1.4.0 patches the issue.
- Record
CVE-2026-33891- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-835, CWE-606
- Updated
- 2026-11-02
EUVDEUVD-2026-16833
7.5
Forge (also called node-forge) is a native implementation of Transport Layer Security in JavaScript. Prior to version 1.4.0, a Denial of Service (DoS) vulnerability exists in the node-forge library due to an infinite loop in the BigInteger.modInverse() function (inherited from the bundled jsbn library). When modInverse() is called with a zero value as input, the internal Extended Euclidean Algorithm enters an unreachable exit condition, causing the process to hang indefinitely and consume 100% CPU. Version 1.4.0 patches the issue.
- Record
EUVD-2026-16833- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-5m6q-g25r-mvwx
7.5
Forge has Denial of Service via Infinite Loop in BigInteger.modInverse() with Zero Input
Summary
A Denial of Service (DoS) vulnerability exists in the node-forge library due to an infinite loop in the BigInteger.modInverse() function (inherited from the bundled jsbn library). When modInverse() is called with a zero value as input, the internal Extended Euclidean Algorithm enters an unreachable exit condition, causing the process to hang indefinitely and consume 100% CPU. Affected Package
Package name: node-forge (npm: node-forge) Repository: https://github.com/digitalbazaar/forge Affected versions: All versions (including latest) Affected file: lib/jsbn.js, function bnModInverse() Root cause component: Bundled copy of the jsbn (JavaScript Big Number) library
Vulnerability Details
Type: Denial of Service (DoS) CWE: CWE-835 (Loop with Unreachable Exit Condition) Attack vector: Network (if the application processes untrusted input that reaches modInverse) Privileges required: None User interaction: None Impact: Availability (process hangs indefinitely) Suggested CVSS v3.1 score: 5.3–7.5 (depending on the context of usage)
Root Cause Analysis
The BigInteger.prototype.modInverse(m) function in lib/jsbn.js implements the Extended Euclidean Algorithm to compute the modular multiplicative inverse of this modulo m. Mathematically, the modular inverse of 0 does not exist — gcd(0, m) = m ≠ 1 for any m > 1. However, the implementation does not check whether the input value is zero before entering the algorithm's main loop. When this equals 0, the algorithm's loop condition is never satisfied for termination, resulting in an infinite loop. The relevant code path in lib/jsbn.js:
javascriptfunction bnModInverse(m) {
// ... setup ...
// No check for this == 0
// Enters Extended Euclidean Algorithm loop that never terminates when this == 0
}
Attack Scenario
Any application using node-forge that passes attacker-controlled or untrusted input to a code path involving modInverse() is vulnerable. Potential attack surfaces include:
DSA/ECDSA signature verification — A crafted signature with s = 0 would trigger s.modInverse(q), causing the verifier to hang. Custom RSA or Diffie-Hellman implementations — Applications performing modular arithmetic with user-supplied parameters. Any cryptographic protocol where an attacker can influence a value that is subsequently passed to modInverse().
A single malicious request can cause the Node.js event loop to block indefinitely, rendering the entire application unresponsive.
Proof of Concept
Environment Setup
mkdir forge-poc && cd forge-poc
npm init -y
npm install node-forge
Reproduction (poc.js) A single script that safely detects the vulnerability using a child process with timeout. The parent process is never at risk of hanging.
mkdir forge-poc && cd forge-poc
npm init -y
npm install node-forge
# Save the script below as poc.js, then run:
node poc.js
'use strict';
const { spawnSync } = require('child_process');
const childCode = `
const forge = require('node-forge');
// jsbn may not be auto-loaded; try explicit require if needed
if (!forge.jsbn) {
try { require('node-forge/lib/jsbn'); } catch(e) {}
}
if (!forge.jsbn || !forge.jsbn.BigInteger) {
console.error('ERROR: forge.jsbn.BigInteger not available');
process.exit(2);
}
const BigInteger = forge.jsbn.BigInteger;
const zero = new BigInteger('0', 10);
const mod = new BigInteger('3', 10);
// This call should throw or return 0, but instead loops forever
const inv = zero.modInverse(mod);
console.log('returned: ' + inv.toString());
`;
console.log('[*] Testing: BigInteger(0).modInverse(3)');
console.log('[*] Expected: throw an error or return quickly');
console.log('[*] Spawning child process with 5s timeout...');
console.log();
const result = spawnSync(process.execPath, ['-e', childCode], {
encoding: 'utf8',
timeout: 5000,
});
if (result.error && result.error.code === 'ETIMEDOUT') {
console.log('[VULNERABLE] Child…
- Record
GHSA-5m6q-g25r-mvwx- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-835
- Updated
- 2026-11-02
NVD
7.5
Forge (also called node-forge) is a native implementation of Transport Layer Security in JavaScript. Prior to version 1.4.0, a Denial of Service (DoS) vulnerability exists in the node-forge library due to an infinite loop in the BigInteger.modInverse() function (inherited from the bundled jsbn library). When modInverse() is called with a zero value as input, the internal Extended Euclidean Algorithm enters an unreachable exit condition, causing the process to hang indefinitely and consume 100% CPU. Version 1.4.0 patches the issue.
- Record
CVE-2026-33891- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-835, CWE-606
- Updated
- 2026-11-02
OSV
7.5
Forge has Denial of Service via Infinite Loop in BigInteger.modInverse() with Zero Input
Forge (also called node-forge) is a native implementation of Transport Layer Security in JavaScript. Prior to version 1.4.0, a Denial of Service (DoS) vulnerability exists in the node-forge library due to an infinite loop in the BigInteger.modInverse() function (inherited from the bundled jsbn library). When modInverse() is called with a zero value as input, the internal Extended Euclidean Algorithm enters an unreachable exit condition, causing the process to hang indefinitely and consume 100% CPU. Version 1.4.0 patches the issue.
- Record
CVE-2026-33891- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-835
- Updated
- 2026-11-02
OSVGHSA-5m6q-g25r-mvwx
7.5
Forge has Denial of Service via Infinite Loop in BigInteger.modInverse() with Zero Input
Summary
A Denial of Service (DoS) vulnerability exists in the node-forge library due to an infinite loop in the BigInteger.modInverse() function (inherited from the bundled jsbn library). When modInverse() is called with a zero value as input, the internal Extended Euclidean Algorithm enters an unreachable exit condition, causing the process to hang indefinitely and consume 100% CPU. Affected Package
Package name: node-forge (npm: node-forge) Repository: https://github.com/digitalbazaar/forge Affected versions: All versions (including latest) Affected file: lib/jsbn.js, function bnModInverse() Root cause component: Bundled copy of the jsbn (JavaScript Big Number) library
Vulnerability Details
Type: Denial of Service (DoS) CWE: CWE-835 (Loop with Unreachable Exit Condition) Attack vector: Network (if the application processes untrusted input that reaches modInverse) Privileges required: None User interaction: None Impact: Availability (process hangs indefinitely) Suggested CVSS v3.1 score: 5.3–7.5 (depending on the context of usage)
Root Cause Analysis
The BigInteger.prototype.modInverse(m) function in lib/jsbn.js implements the Extended Euclidean Algorithm to compute the modular multiplicative inverse of this modulo m. Mathematically, the modular inverse of 0 does not exist — gcd(0, m) = m ≠ 1 for any m > 1. However, the implementation does not check whether the input value is zero before entering the algorithm's main loop. When this equals 0, the algorithm's loop condition is never satisfied for termination, resulting in an infinite loop. The relevant code path in lib/jsbn.js:
javascriptfunction bnModInverse(m) {
// ... setup ...
// No check for this == 0
// Enters Extended Euclidean Algorithm loop that never terminates when this == 0
}
Attack Scenario
Any application using node-forge that passes attacker-controlled or untrusted input to a code path involving modInverse() is vulnerable. Potential attack surfaces include:
DSA/ECDSA signature verification — A crafted signature with s = 0 would trigger s.modInverse(q), causing the verifier to hang. Custom RSA or Diffie-Hellman implementations — Applications performing modular arithmetic with user-supplied parameters. Any cryptographic protocol where an attacker can influence a value that is subsequently passed to modInverse().
A single malicious request can cause the Node.js event loop to block indefinitely, rendering the entire application unresponsive.
Proof of Concept
Environment Setup
mkdir forge-poc && cd forge-poc
npm init -y
npm install node-forge
Reproduction (poc.js) A single script that safely detects the vulnerability using a child process with timeout. The parent process is never at risk of hanging.
mkdir forge-poc && cd forge-poc
npm init -y
npm install node-forge
# Save the script below as poc.js, then run:
node poc.js
'use strict';
const { spawnSync } = require('child_process');
const childCode = `
const forge = require('node-forge');
// jsbn may not be auto-loaded; try explicit require if needed
if (!forge.jsbn) {
try { require('node-forge/lib/jsbn'); } catch(e) {}
}
if (!forge.jsbn || !forge.jsbn.BigInteger) {
console.error('ERROR: forge.jsbn.BigInteger not available');
process.exit(2);
}
const BigInteger = forge.jsbn.BigInteger;
const zero = new BigInteger('0', 10);
const mod = new BigInteger('3', 10);
// This call should throw or return 0, but instead loops forever
const inv = zero.modInverse(mod);
console.log('returned: ' + inv.toString());
`;
console.log('[*] Testing: BigInteger(0).modInverse(3)');
console.log('[*] Expected: throw an error or return quickly');
console.log('[*] Spawning child process with 5s timeout...');
console.log();
const result = spawnSync(process.execPath, ['-e', childCode], {
encoding: 'utf8',
timeout: 5000,
});
if (result.error && result.error.code === 'ETIMEDOUT') {
console.log('[VULNERABLE] Child…
- Record
GHSA-5m6q-g25r-mvwx- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-835
- Updated
- 2026-11-02
Show 7 moreShow less
OSVRHSA-2026:24761
7.8
Red Hat Security Advisory: Red Hat Ansible Automation Platform 2.5 Product Security and Bug Fix Update
- Record
RHSA-2026:24761- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H - Updated
- 2026-11-02
OSVRHSA-2026:24762
8.1
Red Hat Security Advisory: Red Hat Ansible Automation Platform 2.6 Product Security and Bug Fix Update
- Record
RHSA-2026:24762- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVROOT-APP-NPM-CVE-2026-33891
7.5
CVE-2026-33891 in node-forge - Patched by Root
Root has patched CVE-2026-33891 in the node-forge package for Root:npm. Multiple fixed versions available.
- Record
ROOT-APP-NPM-CVE-2026-33891- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-06
OSVUBUNTU-CVE-2026-33891
7.5
Forge (also called node-forge) is a native implementation of Transport Layer Security in JavaScript. Prior to version 1.4.0, a Denial of Service (DoS) vulnerability exists in the node-forge library due to an infinite loop in the BigInteger.modInverse() function (inherited from the bundled jsbn library). When modInverse() is called with a zero value as input, the internal Extended Euclidean Algorithm enters an unreachable exit condition, causing the process to hang indefinitely and consume 100% CPU. Version 1.4.0 patches the issue.
- Record
UBUNTU-CVE-2026-33891- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVCLSA-2026-1775176134 No score
TuxCare security update for node-forge (4 CVEs)
TuxCare rebuilt node-forge to address 4 CVEs. Fixed in 0.10.0-tuxcare.6.
- Record
CLSA-2026-1775176134- Updated
- 2026-11-02
OSVCLSA-2026-1790542136 No score
TuxCare security update for node-forge (1 CVE)
TuxCare rebuilt node-forge to address 1 CVE. Fixed in 1.3.3-tuxcare.1.
- Record
CLSA-2026-1790542136- Updated
- 2026-11-02
OSVCLSA-2026-1791028051 No score
TuxCare security update for node-forge (3 CVEs)
TuxCare rebuilt node-forge to address 3 CVEs. Fixed in 1.3.1-tuxcare.1.
- Record
CLSA-2026-1791028051- Updated
- 2026-11-02
Affected products
- digitalbazaar forge
- red hat cluster observability operator 1.5.0
- red hat cryostat 4
- red hat logging subsystem for red hat openshift
- red hat ansible automation platform 2
- red hat ansible automation platform 2.5 for rhel 8
- red hat ansible automation platform 2.5 for rhel 9
- red hat ansible automation platform 2.6 for rhel 9
- red hat build of apache camel - hawtio 4
- red hat build of apicurio registry 2
- red hat build of podman desktop
- red hat data grid 8
Affected packages
| Package | Affected | Fixed |
|---|---|---|
node-forgenpm |
before 1.4.0 | 1.4.0 |
node-forgeTuxCare:npm From an advisory covering 4 CVEs |
0.10.0-tuxcare.0 up to 0.10.0-tuxcare.6, plus listed versions 0.10.00.10.0-tuxcare.10.10.0-tuxcare.20.10.0-tuxcare.30.10.0-tuxcare.40.10.0-tuxcare.5 |
0.10.0-tuxcare.6 |
node-forgeTuxCare:npm |
1.3.3-tuxcare.0 up to 1.3.3-tuxcare.1, plus listed versions 1.3.3 |
1.3.3-tuxcare.1 |
node-forgeTuxCare:npm From an advisory covering 3 CVEs |
1.3.1-tuxcare.0 up to 1.3.1-tuxcare.1, plus listed versions 1.3.1 |
1.3.1-tuxcare.1 |
automation-gateway-serverRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 16 CVEs |
before 0:2.5.20260422-3.el8ap | 0:2.5.20260422-3.el8ap |
automation-gateway-serverRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 16 CVEs |
before 0:2.5.20260422-3.el9ap | 0:2.5.20260422-3.el9ap |
python3.12-clickRed Hat:ansible_automation_platform_developer:2.5::el8 From an advisory covering 16 CVEs |
before 0:8.3.3-1.el8ap | 0:8.3.3-1.el8ap |
python3.12-clickRed Hat:ansible_automation_platform_inside:2.5::el8 From an advisory covering 16 CVEs |
before 0:8.3.3-1.el8ap | 0:8.3.3-1.el8ap |
python3.12-clickRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 16 CVEs |
before 0:8.3.3-1.el8ap | 0:8.3.3-1.el8ap |
python3.12-clickRed Hat:ansible_automation_platform_developer:2.5::el9 From an advisory covering 16 CVEs |
before 0:8.3.3-1.el9ap | 0:8.3.3-1.el9ap |
Show 65 moreShow less
| Package | Affected | Fixed |
|---|---|---|
python3.12-clickRed Hat:ansible_automation_platform_inside:2.5::el9 From an advisory covering 16 CVEs |
before 0:8.3.3-1.el9ap | 0:8.3.3-1.el9ap |
python3.12-clickRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 16 CVEs |
before 0:8.3.3-1.el9ap | 0:8.3.3-1.el9ap |
automation-controller-venv-towerRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 16 CVEs |
before 0:4.6.29-2.el8ap | 0:4.6.29-2.el8ap |
automation-controller-venv-towerRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 16 CVEs |
before 0:4.6.29-2.el9ap | 0:4.6.29-2.el9ap |
receptorRed Hat:ansible_automation_platform_developer:2.5::el8 From an advisory covering 16 CVEs |
before 0:1.6.5-1.el8ap | 0:1.6.5-1.el8ap |
receptorRed Hat:ansible_automation_platform_inside:2.5::el8 From an advisory covering 16 CVEs |
before 0:1.6.5-1.el8ap | 0:1.6.5-1.el8ap |
automation-gateway-proxy-serverRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 16 CVEs |
before 0:2.5.10-6.el8ap | 0:2.5.10-6.el8ap |
receptorRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 16 CVEs |
before 0:1.6.5-1.el8ap | 0:1.6.5-1.el8ap |
receptorRed Hat:ansible_automation_platform_developer:2.5::el9 From an advisory covering 16 CVEs |
before 0:1.6.5-1.el9ap | 0:1.6.5-1.el9ap |
receptorRed Hat:ansible_automation_platform_inside:2.5::el9 From an advisory covering 16 CVEs |
before 0:1.6.5-1.el9ap | 0:1.6.5-1.el9ap |
automation-gateway-proxy-serverRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 16 CVEs |
before 0:2.6.14-3.el9ap | 0:2.6.14-3.el9ap |
receptorRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 16 CVEs |
before 0:1.6.5-1.el9ap | 0:1.6.5-1.el9ap |
python3.12-cryptographyRed Hat:ansible_automation_platform_developer:2.5::el8 From an advisory covering 16 CVEs |
before 0:46.0.7-1.el8ap | 0:46.0.7-1.el8ap |
python3.12-cryptographyRed Hat:ansible_automation_platform_inside:2.5::el8 From an advisory covering 16 CVEs |
before 0:46.0.7-1.el8ap | 0:46.0.7-1.el8ap |
python3.12-cryptographyRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 16 CVEs |
before 0:46.0.7-1.el8ap | 0:46.0.7-1.el8ap |
python3.12-cryptographyRed Hat:ansible_automation_platform_developer:2.5::el9 From an advisory covering 16 CVEs |
before 0:46.0.7-1.el9ap | 0:46.0.7-1.el9ap |
python3.12-cryptographyRed Hat:ansible_automation_platform_inside:2.5::el9 From an advisory covering 16 CVEs |
before 0:46.0.7-1.el9ap | 0:46.0.7-1.el9ap |
python3.12-cryptographyRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 16 CVEs |
before 0:46.0.7-1.el9ap | 0:46.0.7-1.el9ap |
python3.12-pillowRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 16 CVEs |
before 0:12.2.0-1.el8ap | 0:12.2.0-1.el8ap |
python3.12-pillowRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 16 CVEs |
before 0:12.2.0-1.el9ap | 0:12.2.0-1.el9ap |
automation-platform-uiRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 12 CVEs |
before 0:2.6.9-1.el9ap | 0:2.6.9-1.el9ap |
python3-clickRed Hat:ansible_automation_platform_developer:2.6::el10 From an advisory covering 12 CVEs |
before 0:8.3.3-1.el10ap | 0:8.3.3-1.el10ap |
python3-clickRed Hat:ansible_automation_platform:2.6::el10 From an advisory covering 12 CVEs |
before 0:8.3.3-1.el10ap | 0:8.3.3-1.el10ap |
python3.12-clickRed Hat:ansible_automation_platform_developer:2.6::el9 From an advisory covering 12 CVEs |
before 0:8.3.3-1.el9ap | 0:8.3.3-1.el9ap |
python3.12-clickRed Hat:ansible_automation_platform_inside:2.6::el9 From an advisory covering 12 CVEs |
before 0:8.3.3-1.el9ap | 0:8.3.3-1.el9ap |
python3.12-clickRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 12 CVEs |
before 0:8.3.3-1.el9ap | 0:8.3.3-1.el9ap |
automation-controllerRed Hat:ansible_automation_platform_developer:2.6::el9 From an advisory covering 12 CVEs |
before 0:4.7.12-1.el9ap | 0:4.7.12-1.el9ap |
automation-controller-cliRed Hat:ansible_automation_platform_developer:2.6::el9 From an advisory covering 12 CVEs |
before 0:4.7.12-1.el9ap | 0:4.7.12-1.el9ap |
automation-controllerRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 12 CVEs |
before 0:4.7.12-1.el9ap | 0:4.7.12-1.el9ap |
automation-controller-cliRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 12 CVEs |
before 0:4.7.12-1.el9ap | 0:4.7.12-1.el9ap |
automation-controller-serverRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 12 CVEs |
before 0:4.7.12-1.el9ap | 0:4.7.12-1.el9ap |
automation-controller-uiRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 12 CVEs |
before 0:4.7.12-1.el9ap | 0:4.7.12-1.el9ap |
automation-controller-venv-towerRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 12 CVEs |
before 0:4.7.12-1.el9ap | 0:4.7.12-1.el9ap |
receptorRed Hat:ansible_automation_platform:2.6::el10 From an advisory covering 12 CVEs |
before 0:1.6.5-1.el10ap | 0:1.6.5-1.el10ap |
receptor-debuginfoRed Hat:ansible_automation_platform:2.6::el10 From an advisory covering 12 CVEs |
before 0:1.6.5-1.el10ap | 0:1.6.5-1.el10ap |
receptor-debugsourceRed Hat:ansible_automation_platform:2.6::el10 From an advisory covering 12 CVEs |
before 0:1.6.5-1.el10ap | 0:1.6.5-1.el10ap |
receptorctlRed Hat:ansible_automation_platform:2.6::el10 From an advisory covering 12 CVEs |
before 0:1.6.5-1.el10ap | 0:1.6.5-1.el10ap |
receptorRed Hat:ansible_automation_platform_developer:2.6::el9 From an advisory covering 12 CVEs |
before 0:1.6.5-1.el9ap | 0:1.6.5-1.el9ap |
receptorctlRed Hat:ansible_automation_platform_developer:2.6::el9 From an advisory covering 12 CVEs |
before 0:1.6.5-1.el9ap | 0:1.6.5-1.el9ap |
receptorRed Hat:ansible_automation_platform_inside:2.6::el9 From an advisory covering 12 CVEs |
before 0:1.6.5-1.el9ap | 0:1.6.5-1.el9ap |
receptorctlRed Hat:ansible_automation_platform_inside:2.6::el9 From an advisory covering 12 CVEs |
before 0:1.6.5-1.el9ap | 0:1.6.5-1.el9ap |
automation-gateway-proxyRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 12 CVEs |
before 0:2.6.14-3.el9ap | 0:2.6.14-3.el9ap |
automation-gateway-proxy-debugsourceRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 12 CVEs |
before 0:2.6.14-3.el9ap | 0:2.6.14-3.el9ap |
automation-gateway-proxy-serverRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 12 CVEs |
before 0:2.6.14-3.el9ap | 0:2.6.14-3.el9ap |
automation-gateway-proxy-server-debuginfoRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 12 CVEs |
before 0:2.6.14-3.el9ap | 0:2.6.14-3.el9ap |
receptorRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 12 CVEs |
before 0:1.6.5-1.el9ap | 0:1.6.5-1.el9ap |
receptor-debuginfoRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 12 CVEs |
before 0:1.6.5-1.el9ap | 0:1.6.5-1.el9ap |
receptor-debugsourceRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 12 CVEs |
before 0:1.6.5-1.el9ap | 0:1.6.5-1.el9ap |
receptorctlRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 12 CVEs |
before 0:1.6.5-1.el9ap | 0:1.6.5-1.el9ap |
python3.12-cryptographyRed Hat:ansible_automation_platform_developer:2.6::el9 From an advisory covering 12 CVEs |
before 0:46.0.7-1.el9ap | 0:46.0.7-1.el9ap |
python3.12-cryptography-debuginfoRed Hat:ansible_automation_platform_developer:2.6::el9 From an advisory covering 12 CVEs |
before 0:46.0.7-1.el9ap | 0:46.0.7-1.el9ap |
python3.12-cryptography-debugsourceRed Hat:ansible_automation_platform_developer:2.6::el9 From an advisory covering 12 CVEs |
before 0:46.0.7-1.el9ap | 0:46.0.7-1.el9ap |
python3.12-cryptographyRed Hat:ansible_automation_platform_inside:2.6::el9 From an advisory covering 12 CVEs |
before 0:46.0.7-1.el9ap | 0:46.0.7-1.el9ap |
python3.12-cryptography-debuginfoRed Hat:ansible_automation_platform_inside:2.6::el9 From an advisory covering 12 CVEs |
before 0:46.0.7-1.el9ap | 0:46.0.7-1.el9ap |
python3.12-cryptography-debugsourceRed Hat:ansible_automation_platform_inside:2.6::el9 From an advisory covering 12 CVEs |
before 0:46.0.7-1.el9ap | 0:46.0.7-1.el9ap |
python3.12-cryptographyRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 12 CVEs |
before 0:46.0.7-1.el9ap | 0:46.0.7-1.el9ap |
python3.12-cryptography-debuginfoRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 12 CVEs |
before 0:46.0.7-1.el9ap | 0:46.0.7-1.el9ap |
python3.12-cryptography-debugsourceRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 12 CVEs |
before 0:46.0.7-1.el9ap | 0:46.0.7-1.el9ap |
python3.12-pillowRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 12 CVEs |
before 0:12.2.0-1.el9ap | 0:12.2.0-1.el9ap |
python3.12-pillow-debuginfoRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 12 CVEs |
before 0:12.2.0-1.el9ap | 0:12.2.0-1.el9ap |
python3.12-pillow-debugsourceRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 12 CVEs |
before 0:12.2.0-1.el9ap | 0:12.2.0-1.el9ap |
node-forgeRoot:npm |
before 1.3.1-aikido.5 | 1.3.1-aikido.50.10.0-aikido.20.7.1-aikido.21.3.3-aikido.30.7.1-aikido.30.7.1-aikido.41.3.3-aikido.40.7.6-aikido.10.10.0-aikido.30.7.1-aikido.50.7.1-aikido.60.7.1-aikido.70.7.6-aikido.21.3.0-aikido.31.3.0-aikido.41.3.2-aikido.10.9.0-aikido.11.0.0-aikido.11.3.3-aikido.50.9.0-aikido.20.10.0-aikido.41.3.1-aikido.61.3.3-aikido.61.4.0-aikido.11.4.0-aikido.21.4.0-aikido.31.4.0-aikido.41.4.0-aikido.5 |
@rootio/node-forgeRoot:npm |
before 1.3.3-root.io.2 | 1.3.3-root.io.21.3.1-root.io.31.3.1-root.io.41.3.1-root.io.50.7.1-root.io.20.10.0-root.io.20.10.0-root.io.10.7.1-root.io.11.3.3-root.io.30.7.1-root.io.30.7.1-root.io.41.3.3-root.io.40.7.6-root.io.10.10.0-root.io.30.7.1-root.io.50.7.1-root.io.60.7.1-root.io.70.7.6-root.io.21.3.0-root.io.31.3.0-root.io.41.3.2-root.io.10.9.0-root.io.11.0.0-root.io.11.3.3-root.io.50.9.0-root.io.20.10.0-root.io.41.3.1-root.io.61.3.3-root.io.61.4.0-root.io.11.4.0-root.io.21.4.0-root.io.31.4.0-root.io.41.4.0-root.io.5 |
node-node-forgeUbuntu:20.04:LTS |
All versions, plus listed versions 0.8.5~dfsg-20.9.1~dfsg-1 |
None known |
node-node-forgeUbuntu:22.04:LTS |
All versions, plus listed versions 0.10.0~dfsg-31.2.1~dfsg-2 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | ||
| affected, facts | OSV | |
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-33891 is a high vulnerability (CVSS 7.5) in Digitalbazaar Forge, published March 26, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.61%, the 49th percentile. Fixed in node-forge 1.4.0.
References
github.com/digitalbazaar/forge/security/advisories/GHSA-5m6q-g25r-mvwx
github.com/digitalbazaar/forge/commit/9bb8d67b99d17e4ebb5fd7596cd699e11f25d023
access.redhat.com/security/cve/CVE-2026-33891
bugzilla.redhat.com/show_bug.cgi?id=2452450
security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-33891.json
access.redhat.com/errata/RHSA-2026:24761
Show 130 moreShow less
access.redhat.com/errata/RHSA-2026:24762
access.redhat.com/errata/RHSA-2026:34342
access.redhat.com/errata/RHSA-2026:9742
access.redhat.com/errata/RHSA-2026:13826
nvd.nist.gov/vuln/detail/CVE-2026-33891
github.com/advisories/GHSA-5m6q-g25r-mvwx
github.com/CVEProject/cvelistV5/tree/main/cves/2026/33xxx/CVE-2026-33891.json
github.com/digitalbazaar/forge
access.redhat.com/security/updates/classification
docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/release_notes/patch_releases
docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5
bugzilla.redhat.com/show_bug.cgi?id=2441268
bugzilla.redhat.com/show_bug.cgi?id=2442922
bugzilla.redhat.com/show_bug.cgi?id=2448553
bugzilla.redhat.com/show_bug.cgi?id=2451867
bugzilla.redhat.com/show_bug.cgi?id=2452457
bugzilla.redhat.com/show_bug.cgi?id=2452458
bugzilla.redhat.com/show_bug.cgi?id=2452464
bugzilla.redhat.com/show_bug.cgi?id=2456179
bugzilla.redhat.com/show_bug.cgi?id=2456336
bugzilla.redhat.com/show_bug.cgi?id=2456338
bugzilla.redhat.com/show_bug.cgi?id=2456339
bugzilla.redhat.com/show_bug.cgi?id=2456735
bugzilla.redhat.com/show_bug.cgi?id=2456913
bugzilla.redhat.com/show_bug.cgi?id=2458856
bugzilla.redhat.com/show_bug.cgi?id=2464121
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_24761.json
access.redhat.com/security/cve/CVE-2025-62718
cve.org/CVERecord?id=CVE-2025-62718
nvd.nist.gov/vuln/detail/CVE-2025-62718
datatracker.ietf.org/doc/html/rfc1034
datatracker.ietf.org/doc/html/rfc3986
github.com/axios/axios/commit/fb3befb6daac6cad26b2e54094d0f2d9e47f24df
github.com/axios/axios/pull/10661
github.com/axios/axios/releases/tag/v1.15.0
github.com/axios/axios/security/advisories/GHSA-3p68-rc4w-qgx5
access.redhat.com/security/cve/CVE-2026-4926
cve.org/CVERecord?id=CVE-2026-4926
nvd.nist.gov/vuln/detail/CVE-2026-4926
cna.openjsf.org/security-advisories.html
access.redhat.com/security/cve/CVE-2026-7246
cve.org/CVERecord?id=CVE-2026-7246
nvd.nist.gov/vuln/detail/CVE-2026-7246
github.com/pallets/click/releases/tag/8.3.3
github.com/tsigouris007/security-advisories/security/advisories/GHSA-47fr-3ffg-hgmw
access.redhat.com/security/cve/CVE-2026-26996
cve.org/CVERecord?id=CVE-2026-26996
nvd.nist.gov/vuln/detail/CVE-2026-26996
github.com/isaacs/minimatch/commit/2e111f3a79abc00fa73110195de2c0f2351904f5
github.com/isaacs/minimatch/security/advisories/GHSA-3ppc-4f35-3m26
access.redhat.com/security/cve/CVE-2026-27904
cve.org/CVERecord?id=CVE-2026-27904
nvd.nist.gov/vuln/detail/CVE-2026-27904
github.com/isaacs/minimatch/security/advisories/GHSA-23c5-xmqv-rm74
access.redhat.com/security/cve/CVE-2026-30922
cve.org/CVERecord?id=CVE-2026-30922
nvd.nist.gov/vuln/detail/CVE-2026-30922
github.com/pyasn1/pyasn1/commit/25ad481c19fdb006e20485ef3fc2e5b3eff30ef0
github.com/pyasn1/pyasn1/security/advisories/GHSA-jr27-m4p2-rc6r
access.redhat.com/security/cve/CVE-2026-32280
cve.org/CVERecord?id=CVE-2026-32280
nvd.nist.gov/vuln/detail/CVE-2026-32280
go.dev/cl/758320
go.dev/issue/78282
groups.google.com/g/golang-announce/c/0uYbvbPZRWU
pkg.go.dev/vuln/GO-2026-4947
access.redhat.com/security/cve/CVE-2026-32282
cve.org/CVERecord?id=CVE-2026-32282
nvd.nist.gov/vuln/detail/CVE-2026-32282
go.dev/cl/763761
go.dev/issue/78293
pkg.go.dev/vuln/GO-2026-4864
access.redhat.com/security/cve/CVE-2026-32283
cve.org/CVERecord?id=CVE-2026-32283
nvd.nist.gov/vuln/detail/CVE-2026-32283
go.dev/cl/763767
go.dev/issue/78334
pkg.go.dev/vuln/GO-2026-4870
cve.org/CVERecord?id=CVE-2026-33891
access.redhat.com/security/cve/CVE-2026-33894
cve.org/CVERecord?id=CVE-2026-33894
nvd.nist.gov/vuln/detail/CVE-2026-33894
datatracker.ietf.org/doc/html/rfc2313
github.com/digitalbazaar/forge/security/advisories/GHSA-ppp5-5v6c-4jwp
mailarchive.ietf.org/arch/msg/openpgp/5rnE9ZRN1AokBVj3VqblGlP63QE
rfc-editor.org/rfc/rfc8017.html
access.redhat.com/security/cve/CVE-2026-33895
cve.org/CVERecord?id=CVE-2026-33895
nvd.nist.gov/vuln/detail/CVE-2026-33895
datatracker.ietf.org/doc/html/rfc8032
github.com/digitalbazaar/forge/commit/bdecf11571c9f1a487cc0fe72fe78ff6dfa96b85
github.com/digitalbazaar/forge/security/advisories/GHSA-q67f-28xg-22rw
access.redhat.com/security/cve/CVE-2026-33896
cve.org/CVERecord?id=CVE-2026-33896
nvd.nist.gov/vuln/detail/CVE-2026-33896
github.com/digitalbazaar/forge/commit/2e492832fb25227e6b647cbe1ac981c123171e90
github.com/digitalbazaar/forge/security/advisories/GHSA-2328-f5f3-gj25
access.redhat.com/security/cve/CVE-2026-39363
cve.org/CVERecord?id=CVE-2026-39363
nvd.nist.gov/vuln/detail/CVE-2026-39363
github.com/vitejs/vite/security/advisories/GHSA-p9ff-h696-f583
access.redhat.com/security/cve/CVE-2026-39892
cve.org/CVERecord?id=CVE-2026-39892
nvd.nist.gov/vuln/detail/CVE-2026-39892
openwall.com/lists/oss-security/2026/04/08/12
github.com/pyca/cryptography/commit/622d672e429a7cff836a23c5903683dbec1901f5
github.com/pyca/cryptography/security/advisories/GHSA-p423-j2cm-9vmq
access.redhat.com/security/cve/CVE-2026-40192
cve.org/CVERecord?id=CVE-2026-40192
nvd.nist.gov/vuln/detail/CVE-2026-40192
github.com/python-pillow/Pillow/commit/3cb854e8b2bab43f40e342e665f9340d861aa628
github.com/python-pillow/Pillow/pull/9521
github.com/python-pillow/Pillow/security/advisories/GHSA-whj4-6x5x-4v2j
pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html
docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/whats_new-async_updates
docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6
bugzilla.redhat.com/show_bug.cgi?id=2453496
bugzilla.redhat.com/show_bug.cgi?id=2457432
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_24762.json
access.redhat.com/security/cve/CVE-2026-4800
cve.org/CVERecord?id=CVE-2026-4800
nvd.nist.gov/vuln/detail/CVE-2026-4800
github.com/lodash/lodash/security/advisories/GHSA-r5fr-rjxr-66jc
access.redhat.com/security/cve/CVE-2026-40175
cve.org/CVERecord?id=CVE-2026-40175
nvd.nist.gov/vuln/detail/CVE-2026-40175
github.com/axios/axios/commit/363185461b90b1b78845dc8a99a1f103d9b122a1
github.com/axios/axios/pull/10660
github.com/axios/axios/security/advisories/GHSA-fvcv-3m26-pcqx
ubuntu.com/security/CVE-2026-33891
Left out here: the rest of 2 source descriptions. The JSON record has them.