CVE-2026-102277
brace-expansion: Quadratic-time expansion of the `{a},b}` rewrite causes CPU denial of service
The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to 1.1.21, 2.1.7, 3.0.9, and 5.0.12, the expand function handles untrusted {a},b}-shaped patterns with many trailing closing braces by restarting its scan once for each trailing closing brace. The successive full-input rescans with linear working-string growth cause quadratic CPU time and memory pressure that can block the Node.js event loop. The process eventually recovers, making the impact a recoverable CPU denial of service. This issue is fixed in versions 1.1.21, 2.1.7, 3.0.9, and 5.0.12.
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
- Low
Exploit likelihood
What each source reports
CVE List Score used
5.3
brace-expansion: Quadratic-time expansion of the `{a},b}` rewrite causes CPU denial of service
The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to 1.1.21, 2.1.7, 3.0.9, and 5.0.12, the expand function handles untrusted {a},b}-shaped patterns with many trailing closing braces by restarting its scan once for each trailing closing brace. The successive full-input rescans with linear working-string growth cause quadratic CPU time and memory pressure that can block the Node.js event loop. The process eventually recovers, making the impact a recoverable CPU denial of service. This issue is fixed in versions 1.1.21, 2.1.7, 3.0.9, and 5.0.12.
- Record
CVE-2026-102277- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-400, CWE-407
- Updated
- 2026-11-02
EUVDEUVD-2026-88551
5.3
The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to 1.1.21, 2.1.7, 3.0.9, and 5.0.12, the expand function handles untrusted {a},b}-shaped patterns with many trailing closing braces by restarting its scan once for each trailing closing brace. The successive full-input rescans with linear working-string growth cause quadratic CPU time and memory pressure that can block the Node.js event loop. The process eventually recovers, making the impact a recoverable CPU denial of service. This issue is fixed in versions 1.1.21, 2.1.7, 3.0.9, and 5.0.12.
- Record
EUVD-2026-88551- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-q2hr-2g5m-vwhr
5.3
brace-expansion: Quadratic-time expansion of the `{a},b}` rewrite causes CPU denial of service
Summary
Expanding {a},b}-shaped input takes time quadratic in the number of literal } characters, blocking the event loop.
Bash preserves a quirk where a brace group followed by a comma set still expands ({a},b}). The parser implements this by rewriting the string and restarting the scan. Each pass absorbs exactly one } and re-scans from the beginning, so n trailing braces cost n full passes.
Reproduction
const build = n => '{a}' + '}'.repeat(n) + ',z}'
for (const n of [8000, 16000, 32000, 64000, 128000]) {
const t = Date.now()
expand(build(n))
console.log(n, Date.now() - t + 'ms')
}
| n | input | time | results | |---|---|---|---| | 8,000 | 8 KB | 110 ms | 2 | | 16,000 | 16 KB | 446 ms | 2 | | 32,000 | 32 KB | 1.7 s | 2 | | 64,000 | 64 KB | 6.9 s | 2 | | 128,000 | 128 KB | 27.7 s | 2 |
ms/n^2 is flat at ~1.7 and each doubling of n costs exactly 4.0x - quadratic. 128 KB of input blocks the event loop for nearly half a minute to produce two results.
Mechanism
Instrumenting the rewrite branch confirms it runs exactly n + 1 times, once per literal }, each re-scanning the whole string.
There is a second multiplier. The rewrite replaces the group's closing } with the internal escClose sentinel, which is '\0CLOSE' + Math.random() + '\0' - about 25 characters. The working string therefore grows by ~25 characters on every pass:
| n | input length | final string length | |---|---|---| | 1,000 | 1,006 | 26,006 | | 8,000 | 8,006 | 208,006 |
So the input is inflated roughly 26x, and that factor multiplies both the quadratic constant and peak memory. This makes it partly a memory-pressure issue as well as a CPU one.
Why max and maxLength do not help
The cost is in parsing, before the result set exists. The payload yields 2 results regardless of size, so neither bound is ever reached.
Impact
An application passing an untrusted pattern to expand(), directly or through minimatch / glob, can have its event loop blocked for tens of seconds by a payload well under minimatch's 65,536-character cap. For a single-threaded Node server that is a full stall, not just a slow request.
Degraded availability rather than a crash - the process recovers once the expansion completes.
Affected versions
Verified affected on 1.1.18, 2.1.4, 3.0.6 and 5.0.9, all within a few percent of each other (~460-490 ms at n=16,000).
Patch
The rewrite loop gets an iteration bound. Past the cap the remaining string is treated as non-expanding and returned literally, consistent with the existing max / maxLength caps, which truncate rather than throw.
Note this bounds the number of passes, not the cost of each: worst-case work remains proportional to cap x input length. The cap is set low enough that the residual is bounded in practice, and far above what any realistic {a},b} input needs.
Severity note
Scored 5.3 Medium (A:L) for consistency with GHSA-3jxr-9vmj-r5cp, the other algorithmic-complexity advisory on this package (CWE-407), which uses the same vector. The stack-exhaustion advisories on this package score A:H because they crash the process outright; this one stalls it.
- Record
GHSA-q2hr-2g5m-vwhr- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-400, CWE-407
- Updated
- 2026-11-02
NVD
5.3
The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to 1.1.21, 2.1.7, 3.0.9, and 5.0.12, the expand function handles untrusted {a},b}-shaped patterns with many trailing closing braces by restarting its scan once for each trailing closing brace. The successive full-input rescans with linear working-string growth cause quadratic CPU time and memory pressure that can block the Node.js event loop. The process eventually recovers, making the impact a recoverable CPU denial of service. This issue is fixed in versions 1.1.21, 2.1.7, 3.0.9, and 5.0.12.
- Record
CVE-2026-102277- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-400, CWE-407
- Updated
- 2026-11-02
OSV
5.3
brace-expansion: Quadratic-time expansion of the `{a},b}` rewrite causes CPU denial of service
The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to 1.1.21, 2.1.7, 3.0.9, and 5.0.12, the expand function handles untrusted {a},b}-shaped patterns with many trailing closing braces by restarting its scan once for each trailing closing brace. The successive full-input rescans with linear working-string growth cause quadratic CPU time and memory pressure that can block the Node.js event loop. The process eventually recovers, making the impact a recoverable CPU denial of service. This issue is fixed in versions 1.1.21, 2.1.7, 3.0.9, and 5.0.12.
- Record
CVE-2026-102277- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-400, CWE-407
- Updated
- 2026-11-06
OSVDEBIAN-CVE-2026-102277
5.3
The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to 1.1.21, 2.1.7, 3.0.9, and 5.0.12, the expand function handles untrusted {a},b}-shaped patterns with many trailing closing braces by restarting its scan once for each trailing closing brace. The successive full-input rescans with linear working-string growth cause quadratic CPU time and memory pressure that can block the Node.js event loop. The process eventually recovers, making the impact a recoverable CPU denial of service. This issue is fixed in versions 1.1.21, 2.1.7, 3.0.9, and 5.0.12.
- Record
DEBIAN-CVE-2026-102277- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L - Updated
- 2026-11-02
Show 40 moreShow less
OSVGHSA-q2hr-2g5m-vwhr
5.3
brace-expansion: Quadratic-time expansion of the `{a},b}` rewrite causes CPU denial of service
Summary
Expanding {a},b}-shaped input takes time quadratic in the number of literal } characters, blocking the event loop.
Bash preserves a quirk where a brace group followed by a comma set still expands ({a},b}). The parser implements this by rewriting the string and restarting the scan. Each pass absorbs exactly one } and re-scans from the beginning, so n trailing braces cost n full passes.
Reproduction
const build = n => '{a}' + '}'.repeat(n) + ',z}'
for (const n of [8000, 16000, 32000, 64000, 128000]) {
const t = Date.now()
expand(build(n))
console.log(n, Date.now() - t + 'ms')
}
| n | input | time | results | |---|---|---|---| | 8,000 | 8 KB | 110 ms | 2 | | 16,000 | 16 KB | 446 ms | 2 | | 32,000 | 32 KB | 1.7 s | 2 | | 64,000 | 64 KB | 6.9 s | 2 | | 128,000 | 128 KB | 27.7 s | 2 |
ms/n^2 is flat at ~1.7 and each doubling of n costs exactly 4.0x - quadratic. 128 KB of input blocks the event loop for nearly half a minute to produce two results.
Mechanism
Instrumenting the rewrite branch confirms it runs exactly n + 1 times, once per literal }, each re-scanning the whole string.
There is a second multiplier. The rewrite replaces the group's closing } with the internal escClose sentinel, which is '\0CLOSE' + Math.random() + '\0' - about 25 characters. The working string therefore grows by ~25 characters on every pass:
| n | input length | final string length | |---|---|---| | 1,000 | 1,006 | 26,006 | | 8,000 | 8,006 | 208,006 |
So the input is inflated roughly 26x, and that factor multiplies both the quadratic constant and peak memory. This makes it partly a memory-pressure issue as well as a CPU one.
Why max and maxLength do not help
The cost is in parsing, before the result set exists. The payload yields 2 results regardless of size, so neither bound is ever reached.
Impact
An application passing an untrusted pattern to expand(), directly or through minimatch / glob, can have its event loop blocked for tens of seconds by a payload well under minimatch's 65,536-character cap. For a single-threaded Node server that is a full stall, not just a slow request.
Degraded availability rather than a crash - the process recovers once the expansion completes.
Affected versions
Verified affected on 1.1.18, 2.1.4, 3.0.6 and 5.0.9, all within a few percent of each other (~460-490 ms at n=16,000).
Patch
The rewrite loop gets an iteration bound. Past the cap the remaining string is treated as non-expanding and returned literally, consistent with the existing max / maxLength caps, which truncate rather than throw.
Note this bounds the number of passes, not the cost of each: worst-case work remains proportional to cap x input length. The cap is set low enough that the residual is bounded in practice, and far above what any realistic {a},b} input needs.
Severity note
Scored 5.3 Medium (A:L) for consistency with GHSA-3jxr-9vmj-r5cp, the other algorithmic-complexity advisory on this package (CWE-407), which uses the same vector. The stack-exhaustion advisories on this package score A:H because they crash the process outright; this one stalls it.
- Record
GHSA-q2hr-2g5m-vwhr- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-400, CWE-407
- Updated
- 2026-11-02
OSVRHSA-2026:74161
7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs bug fix and enhancement update
- Record
RHSA-2026:74161- 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
OSVRHSA-2026:74167
7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:74167- 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
OSVRHSA-2026:74168
7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs bug fix and enhancement update
- Record
RHSA-2026:74168- 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
OSVRLSA-2026:92376
8.1
Important: nodejs:24 security, bug fix, and enhancement update
Node.js is a software development platform for building fast and scalable network applications in the JavaScript programming language.
Security Fix(es):
-
ip-address: ip-address: Denial of Service via unbounded IPv6 address parsing (CVE-2026-101911)
-
brace-expansion: brace-expansion: Denial of Service via uncontrolled recursion in nested brace patterns (CVE-2026-102278)
-
brace-expansion: brace-expansion: Denial of Service via crafted brace patterns (CVE-2026-102277)
-
brace-expansion: brace-expansion: Denial of Service via stack exhaustion from crafted brace patterns (CVE-2026-102276)
-
brotli: Out-of-Bounds Write in Google Brotli Decoder (CVE-2026-111497)
-
nodejs: nodejs: TLS certificate hostname bypass via fullwidth-digit IP hostnames (CVE-2026-105483)
-
nodejs: nodejs: TLS certificate hostname bypass via non-canonical IP hostnames (CVE-2026-106069)
-
nodejs: nodejs: dns.resolve truncates hostnames containing a NUL character (CVE-2026-105482)
-
nodejs: nodejs: predictable random values via snapshot entropy cache reuse (CVE-2026-106074)
-
nodejs: nodejs: Permission model bypass via wildcard path matching flaw (CVE-2026-106071)
-
nodejs: nodejs: Response desynchronization via improper HTTP keep-alive connection reuse (CVE-2026-105481)
-
nodejs: Node.js: Filesystem read permission bypass via fs.realpathSync() (CVE-2026-106073)
-
nodejs: nodejs: Authentication bypass via non-canonical IPv4 hostname verification (CVE-2026-106072)
Bug Fix(es) and Enhancement(s):
- nodejs:24/nodejs: Rebase to the latest Node.js 24 release [rhel-8] (JIRA:Rocky Linux-289763)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
RLSA-2026:92376- 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
OSVRLSA-2026:92378
8.1
Important: nodejs:24 security, bug fix, and enhancement update
Node.js is a software development platform for building fast and scalable network applications in the JavaScript programming language.
Security Fix(es):
-
ip-address: ip-address: Denial of Service via unbounded IPv6 address parsing (CVE-2026-101911)
-
brace-expansion: brace-expansion: Denial of Service via uncontrolled recursion in nested brace patterns (CVE-2026-102278)
-
brace-expansion: brace-expansion: Denial of Service via crafted brace patterns (CVE-2026-102277)
-
brace-expansion: brace-expansion: Denial of Service via stack exhaustion from crafted brace patterns (CVE-2026-102276)
-
brotli: Out-of-Bounds Write in Google Brotli Decoder (CVE-2026-111497)
-
nodejs: nodejs: TLS certificate hostname bypass via fullwidth-digit IP hostnames (CVE-2026-105483)
-
nodejs: nodejs: TLS certificate hostname bypass via non-canonical IP hostnames (CVE-2026-106069)
-
nodejs: nodejs: dns.resolve truncates hostnames containing a NUL character (CVE-2026-105482)
-
nodejs: nodejs: predictable random values via snapshot entropy cache reuse (CVE-2026-106074)
-
nodejs: nodejs: Permission model bypass via wildcard path matching flaw (CVE-2026-106071)
-
nodejs: nodejs: Response desynchronization via improper HTTP keep-alive connection reuse (CVE-2026-105481)
-
nodejs: Node.js: Filesystem read permission bypass via fs.realpathSync() (CVE-2026-106073)
-
nodejs: nodejs: Authentication bypass via non-canonical IPv4 hostname verification (CVE-2026-106072)
Bug Fix(es) and Enhancement(s):
- nodejs:24/nodejs: Rebase to the latest Node.js 24 release [rhel-9.8.z] (JIRA:Rocky Linux-293233)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
RLSA-2026:92378- 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
OSVUBUNTU-CVE-2026-102277
5.3
The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to 1.1.21, 2.1.7, 3.0.9, and 5.0.12, the expand function handles untrusted {a},b}-shaped patterns with many trailing closing braces by restarting its scan once for each trailing closing brace. The successive full-input rescans with linear working-string growth cause quadratic CPU time and memory pressure that can block the Node.js event loop. The process eventually recovers, making the impact a recoverable CPU denial of service. This issue is fixed in versions 1.1.21, 2.1.7, 3.0.9, and 5.0.12.
- Record
UBUNTU-CVE-2026-102277- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L - Updated
- 2026-11-02
OSVALSA-2026:92376 No score
Important: nodejs:24 security, bug fix, and enhancement update
Node.js is a software development platform for building fast and scalable network applications in the JavaScript programming language.
Security Fix(es):
- ip-address: ip-address: Denial of Service via unbounded IPv6 address parsing (CVE-2026-101911)
- brace-expansion: brace-expansion: Denial of Service via uncontrolled recursion in nested brace patterns (CVE-2026-102278)
- brace-expansion: brace-expansion: Denial of Service via crafted brace patterns (CVE-2026-102277)
- brace-expansion: brace-expansion: Denial of Service via stack exhaustion from crafted brace patterns (CVE-2026-102276)
- brotli: Out-of-Bounds Write in Google Brotli Decoder (CVE-2026-111497)
- nodejs: nodejs: TLS certificate hostname bypass via fullwidth-digit IP hostnames (CVE-2026-105483)
- nodejs: nodejs: TLS certificate hostname bypass via non-canonical IP hostnames (CVE-2026-106069)
- nodejs: nodejs: dns.resolve truncates hostnames containing a NUL character (CVE-2026-105482)
- nodejs: nodejs: predictable random values via snapshot entropy cache reuse (CVE-2026-106074)
- nodejs: nodejs: Permission model bypass via wildcard path matching flaw (CVE-2026-106071)
- nodejs: nodejs: Response desynchronization via improper HTTP keep-alive connection reuse (CVE-2026-105481)
- nodejs: Node.js: Filesystem read permission bypass via fs.realpathSync() (CVE-2026-106073)
- nodejs: nodejs: Authentication bypass via non-canonical IPv4 hostname verification (CVE-2026-106072)
Bug Fix(es) and Enhancement(s):
- nodejs:24/nodejs: Rebase to the latest Node.js 24 release [rhel-8] (JIRA:RHEL-289763)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
ALSA-2026:92376- Updated
- 2026-11-02
OSVALSA-2026:92378 No score
Important: nodejs:24 security, bug fix, and enhancement update
Node.js is a software development platform for building fast and scalable network applications in the JavaScript programming language.
Security Fix(es):
- ip-address: ip-address: Denial of Service via unbounded IPv6 address parsing (CVE-2026-101911)
- brace-expansion: brace-expansion: Denial of Service via uncontrolled recursion in nested brace patterns (CVE-2026-102278)
- brace-expansion: brace-expansion: Denial of Service via crafted brace patterns (CVE-2026-102277)
- brace-expansion: brace-expansion: Denial of Service via stack exhaustion from crafted brace patterns (CVE-2026-102276)
- brotli: Out-of-Bounds Write in Google Brotli Decoder (CVE-2026-111497)
- nodejs: nodejs: TLS certificate hostname bypass via fullwidth-digit IP hostnames (CVE-2026-105483)
- nodejs: nodejs: TLS certificate hostname bypass via non-canonical IP hostnames (CVE-2026-106069)
- nodejs: nodejs: dns.resolve truncates hostnames containing a NUL character (CVE-2026-105482)
- nodejs: nodejs: predictable random values via snapshot entropy cache reuse (CVE-2026-106074)
- nodejs: nodejs: Permission model bypass via wildcard path matching flaw (CVE-2026-106071)
- nodejs: nodejs: Response desynchronization via improper HTTP keep-alive connection reuse (CVE-2026-105481)
- nodejs: Node.js: Filesystem read permission bypass via fs.realpathSync() (CVE-2026-106073)
- nodejs: nodejs: Authentication bypass via non-canonical IPv4 hostname verification (CVE-2026-106072)
Bug Fix(es) and Enhancement(s):
- nodejs:24/nodejs: Rebase to the latest Node.js 24 release [rhel-9.8.z] (JIRA:RHEL-293233)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
ALSA-2026:92378- Updated
- 2026-11-02
OSVAZL-105072 No score
CVE-2026-102277 affecting package js-jquery 3.5.0-4
The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to 1.1.21, 2.1.7, 3.0.9, and 5.0.12, the expand function handles untrusted {a},b}-shaped patterns with many trailing closing braces by restarting its scan once for each trailing closing brace. The successive full-input rescans with linear working-string growth cause quadratic CPU time and memory pressure that can block the Node.js event loop. The process eventually recovers, making the impact a recoverable CPU denial of service. This issue is fixed in versions 1.1.21, 2.1.7, 3.0.9, and 5.0.12.
- Record
AZL-105072- Updated
- 2026-11-05
OSVAZL-105089 No score
CVE-2026-102277 affecting package nodejs-nodemon 2.0.3-5
The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to 1.1.21, 2.1.7, 3.0.9, and 5.0.12, the expand function handles untrusted {a},b}-shaped patterns with many trailing closing braces by restarting its scan once for each trailing closing brace. The successive full-input rescans with linear working-string growth cause quadratic CPU time and memory pressure that can block the Node.js event loop. The process eventually recovers, making the impact a recoverable CPU denial of service. This issue is fixed in versions 1.1.21, 2.1.7, 3.0.9, and 5.0.12.
- Record
AZL-105089- Updated
- 2026-11-05
OSVAZL-105251 No score
CVE-2026-102277 affecting package python-tensorboard 2.16.2-6
The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to 1.1.21, 2.1.7, 3.0.9, and 5.0.12, the expand function handles untrusted {a},b}-shaped patterns with many trailing closing braces by restarting its scan once for each trailing closing brace. The successive full-input rescans with linear working-string growth cause quadratic CPU time and memory pressure that can block the Node.js event loop. The process eventually recovers, making the impact a recoverable CPU denial of service. This issue is fixed in versions 1.1.21, 2.1.7, 3.0.9, and 5.0.12.
- Record
AZL-105251- Updated
- 2026-11-02
OSVCLSA-2026-1790854736 No score
TuxCare security update for brace-expansion (1 CVE)
TuxCare rebuilt brace-expansion to address 1 CVE. Fixed in 1.1.20-tuxcare.1.
- Record
CLSA-2026-1790854736- Updated
- 2026-11-02
OSVCLSA-2026-1790856851 No score
TuxCare security update for brace-expansion (1 CVE)
TuxCare rebuilt brace-expansion to address 1 CVE. Fixed in 1.1.18-tuxcare.2.
- Record
CLSA-2026-1790856851- Updated
- 2026-11-02
OSVCLSA-2026-1790862926 No score
TuxCare security update for brace-expansion (2 CVEs)
TuxCare rebuilt brace-expansion to address 2 CVEs. Fixed in 4.0.1-tuxcare.2.
- Record
CLSA-2026-1790862926- Updated
- 2026-11-02
OSVCLSA-2026-1790862940 No score
TuxCare security update for brace-expansion (1 CVE)
TuxCare rebuilt brace-expansion to address 1 CVE. Fixed in 2.0.2-tuxcare.2.
- Record
CLSA-2026-1790862940- Updated
- 2026-11-02
OSVCLSA-2026-1790864782 No score
TuxCare security update for brace-expansion (1 CVE)
TuxCare rebuilt brace-expansion to address 1 CVE. Fixed in 1.1.16-tuxcare.2.
- Record
CLSA-2026-1790864782- Updated
- 2026-11-02
OSVCLSA-2026-1790869488 No score
TuxCare security update for brace-expansion (1 CVE)
TuxCare rebuilt brace-expansion to address 1 CVE. Fixed in 1.1.15-tuxcare.2.
- Record
CLSA-2026-1790869488- Updated
- 2026-11-02
OSVCLSA-2026-1790870256 No score
TuxCare security update for brace-expansion (1 CVE)
TuxCare rebuilt brace-expansion to address 1 CVE. Fixed in 1.1.14-tuxcare.2.
- Record
CLSA-2026-1790870256- Updated
- 2026-11-02
OSVCLSA-2026-1790887113 No score
TuxCare security update for brace-expansion (3 CVEs)
TuxCare rebuilt brace-expansion to address 3 CVEs. Fixed in 2.0.1-tuxcare.4.
- Record
CLSA-2026-1790887113- Updated
- 2026-11-02
OSVCLSA-2026-1791226583 No score
TuxCare security update for brace-expansion (1 CVE)
TuxCare rebuilt brace-expansion to address 1 CVE. Fixed in 2.1.6-tuxcare.1.
- Record
CLSA-2026-1791226583- Updated
- 2026-11-02
OSVCLSA-2026-1791226683 No score
TuxCare security update for brace-expansion (1 CVE)
TuxCare rebuilt brace-expansion to address 1 CVE. Fixed in 5.0.11-tuxcare.1.
- Record
CLSA-2026-1791226683- Updated
- 2026-11-02
OSVCLSA-2026-1791278751 No score
TuxCare security update for brace-expansion (1 CVE)
TuxCare rebuilt brace-expansion to address 1 CVE. Fixed in 5.0.10-tuxcare.2.
- Record
CLSA-2026-1791278751- Updated
- 2026-11-02
OSVCLSA-2026-1791279204 No score
TuxCare security update for brace-expansion (1 CVE)
TuxCare rebuilt brace-expansion to address 1 CVE. Fixed in 2.1.4-tuxcare.2.
- Record
CLSA-2026-1791279204- Updated
- 2026-11-02
OSVCLSA-2026-1791282750 No score
TuxCare security update for brace-expansion (1 CVE)
TuxCare rebuilt brace-expansion to address 1 CVE. Fixed in 2.1.3-tuxcare.3.
- Record
CLSA-2026-1791282750- Updated
- 2026-11-02
OSVCLSA-2026-1791285043 No score
TuxCare security update for brace-expansion (1 CVE)
TuxCare rebuilt brace-expansion to address 1 CVE. Fixed in 5.0.9-tuxcare.3.
- Record
CLSA-2026-1791285043- Updated
- 2026-11-02
OSVCLSA-2026-1791304072 No score
TuxCare security update for brace-expansion (1 CVE)
TuxCare rebuilt brace-expansion to address 1 CVE. Fixed in 2.1.2-tuxcare.4.
- Record
CLSA-2026-1791304072- Updated
- 2026-11-02
OSVCLSA-2026-1791626852 No score
TuxCare security update for brace-expansion (4 CVEs)
TuxCare rebuilt brace-expansion to address 4 CVEs. Fixed in 1.1.11-tuxcare.3.
- Record
CLSA-2026-1791626852- Updated
- 2026-11-02
OSVCLSA-2026-1791629378 No score
TuxCare security update for brace-expansion (2 CVEs)
TuxCare rebuilt brace-expansion to address 2 CVEs. Fixed in 5.0.4-tuxcare.2.
- Record
CLSA-2026-1791629378- Updated
- 2026-11-02
OSVCLSA-2026-1791666934 No score
TuxCare security update for brace-expansion (1 CVE)
TuxCare rebuilt brace-expansion to address 1 CVE. Fixed in 5.0.8-tuxcare.4.
- Record
CLSA-2026-1791666934- Updated
- 2026-11-02
OSVCLSA-2026-1791798665 No score
TuxCare security update for brace-expansion (6 CVEs)
TuxCare rebuilt brace-expansion to address 6 CVEs. Fixed in 5.0.5-tuxcare.2.
- Record
CLSA-2026-1791798665- Updated
- 2026-11-02
OSVCLSA-2026-1792233030 No score
TuxCare security update for brace-expansion (4 CVEs)
TuxCare rebuilt brace-expansion to address 4 CVEs. Fixed in 1.1.12-tuxcare.5.
- Record
CLSA-2026-1792233030- Updated
- 2026-11-02
OSVCLSA-2026-1792448853 No score
TuxCare security update for brace-expansion (6 CVEs)
TuxCare rebuilt brace-expansion to address 6 CVEs. Fixed in 5.0.6-tuxcare.1.
- Record
CLSA-2026-1792448853- Updated
- 2026-11-02
OSVCLSA-2026-1792453589 No score
TuxCare security update for brace-expansion (7 CVEs)
TuxCare rebuilt brace-expansion to address 7 CVEs. Fixed in 5.0.3-tuxcare.1.
- Record
CLSA-2026-1792453589- Updated
- 2026-11-02
OSVCLSA-2026-1792479350 No score
TuxCare security update for brace-expansion (7 CVEs)
TuxCare rebuilt brace-expansion to address 7 CVEs. Fixed in 5.0.2-tuxcare.1.
- Record
CLSA-2026-1792479350- Updated
- 2026-11-02
OSVCLSA-2026-1793102029 No score
TuxCare security update for brace-expansion (5 CVEs)
TuxCare rebuilt brace-expansion to address 5 CVEs. Fixed in 1.1.3-tuxcare.2.
- Record
CLSA-2026-1793102029- Updated
- 2026-11-02
OSVCLSA-2026-1793445824 No score
TuxCare security update for brace-expansion (1 CVE)
TuxCare rebuilt brace-expansion to address 1 CVE. Fixed in 1.1.1-tuxcare.2.
- Record
CLSA-2026-1793445824- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:11967-1 No score
pi-coding-agent-1.0.0-1.1 on GA media
These are all security issues fixed in the pi-coding-agent-1.0.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:11967-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:12424-1 No score
agama-web-ui-25+475.275dd4727-56.1 on GA media
These are all security issues fixed in the agama-web-ui-25+475.275dd4727-56.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:12424-1- Updated
- 2026-11-06
OSVopenSUSE-SU-2026:22111-1 No score
Security update for pi-coding-agent
This update for pi-coding-agent fixes the following issues:
Changes in pi-coding-agent:
-
Update to version 1.0.4 (1.0.3 was superseded the same day and never submitted):
- BREAKING: provider azure-openai-responses renamed to azure, now also serving Azure Foundry Chat Completions (azure/deepseek-v4-pro first). Rename the provider key in auth.json (or run /login again), models.json and settings.json (defaultProvider, enabledModels and modelThinkingLevels); sessions on the old provider fall back and lose prompt cache. AZURE_OPENAI_* env vars unchanged
- --tools and --exclude-tools take *-patterns and --no-mcp disables MCP for one run; --tools keeps MCP tools unless an entry starts with mcp__
- Codemode read() on image files yields an image block image() shows, and image() also saves each image to a temp file for later turns
- Fix fenced-code highlighting past the first line, MCP OAuth native-client registration, MCP shutdown racing a connecting server, Bedrock stalled-stream retries and frozen codemode built-ins, plus ChatGPT-login, EIO-on-closed-terminal and output-file-permission fixes
- Many more fixes and improvements; see upstream's release notes for the full list
-
Refresh the vendored node_modules 1.0.2 -> 1.0.4: the ten @earendil-works packages move to 1.0.4; nanoid, postcss and vite move too but are dev-only and not shipped. Still 119 shipped modules and the licence union is unchanged
- CVE-2026-102276 (boo#1283188): brace-expansion is 5.0.12, above the 5.0.10 fix floor, so the package is not affected by it
- CVE-2026-102277 (boo#1283392) and CVE-2026-102278 (boo#1283412): brace-expansion is 5.0.12, at the 5.0.12 and above the 5.0.11 fix floors, so the package is not affected by them
-
Update to version 1.0.2: patch releases on the 1.0 API, with no breaking changes
- models.json takes samplingParamsByThinkingLevel next to the existing samplingParams, so an OpenAI-compatible model can set temperature, top_p and the like separately for off, minimal, low, medium, high, xhigh and max. Model defaults, the effective level's override and the request are merged per key, modelOverrides merges per level, and the levels are pi's own, not the provider's thinkingLevelMap values. Only openai-completions, openai-responses and azure-openai-responses apply them
- MCP servers can be enabled, disabled or re-scoped per project from a .pi/mcp.json entry without a command or url, and /mcp toggles a user-level server for the current project
- oauth.clientRegistration: "cimd" identifies pi by its Client ID Metadata Document instead of dynamic client registration
- pi.registerToolRenderer() picks how calls to a tool that is not registered yet are drawn, such as MCP tools in a resumed session
- Cloudflare's Clef and Clef Flash classifier models are usable from codemode scripts and extensions
- A codemode script printing in a loop now fails at 16 Mi characters or 100000 items instead of running pi out of memory
- MCP tool calls in resumed sessions and HTML exports no longer render fully expanded until their server connects
- JPEG, GIF and WebP images that extensions draw through Image now appear in Kitty, Ghostty, WezTerm and Warp, and fullscreen Kitty images no longer collapse to a one-row strip after scrolling in WezTerm
- Many more fixes and improvements; see upstream's release notes for the full list
-
Refresh the vendored node_modules over 1.0.0 -> 1.0.2: the ten @earendil-works packages move to 1.0.2, with pi-telemetry the one that was already at 1.0.2 in the 1.0.1 tree, plus @anthropic-ai/sdk to 0.129.0. No module leaves or joins the 119 shipped ones and the licence union is unchanged
- CVE-2026-102276 (boo#1283188): brace-expansion is 5.0.12, above the 5.0.10 fix floor, so the package is not affected by it. Upstream's 1.0.1 made…
- Record
openSUSE-SU-2026:22111-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
brace-expansionnpm |
4.0.0 up to 5.0.12 | 5.0.12 |
brace-expansionnpm |
3.0.0 up to 3.0.9 | 3.0.9 |
brace-expansionnpm |
2.0.0 up to 2.1.7 | 2.1.7 |
brace-expansionnpm |
before 1.1.21 | 1.1.21 |
nodejsAlmaLinux:8 From an advisory covering 13 CVEs |
before 1:24.22.1-1.module_el8.10.0+4331+0683c9c1 | 1:24.22.1-1.module_el8.10.0+4331+0683c9c1 |
nodejs-develAlmaLinux:8 From an advisory covering 13 CVEs |
before 1:24.22.1-1.module_el8.10.0+4331+0683c9c1 | 1:24.22.1-1.module_el8.10.0+4331+0683c9c1 |
nodejs-docsAlmaLinux:8 From an advisory covering 13 CVEs |
before 1:24.22.1-1.module_el8.10.0+4331+0683c9c1 | 1:24.22.1-1.module_el8.10.0+4331+0683c9c1 |
nodejs-full-i18nAlmaLinux:8 From an advisory covering 13 CVEs |
before 1:24.22.1-1.module_el8.10.0+4331+0683c9c1 | 1:24.22.1-1.module_el8.10.0+4331+0683c9c1 |
nodejs-libsAlmaLinux:8 From an advisory covering 13 CVEs |
before 1:24.22.1-1.module_el8.10.0+4331+0683c9c1 | 1:24.22.1-1.module_el8.10.0+4331+0683c9c1 |
nodejs-nodemonAlmaLinux:8 From an advisory covering 13 CVEs |
before 3.1.14-2.module_el8.10.0+4250+09238ed4 | 3.1.14-2.module_el8.10.0+4250+09238ed4 |
Show 90 moreShow less
| Package | Affected | Fixed |
|---|---|---|
nodejs-packagingAlmaLinux:8 From an advisory covering 13 CVEs |
before 2021.06-6.module_el8.10.0+4086+70facd4a | 2021.06-6.module_el8.10.0+4086+70facd4a |
nodejs-packaging-bundlerAlmaLinux:8 From an advisory covering 13 CVEs |
before 2021.06-6.module_el8.10.0+4086+70facd4a | 2021.06-6.module_el8.10.0+4086+70facd4a |
npmAlmaLinux:8 From an advisory covering 13 CVEs |
before 1:11.19.1-1.24.22.1.1.module_el8.10.0+4331+0683c9c1 | 1:11.19.1-1.24.22.1.1.module_el8.10.0+4331+0683c9c1 |
v8-13.6-develAlmaLinux:8 From an advisory covering 13 CVEs |
before 3:13.6.233.17-1.24.22.1.1.module_el8.10.0+4331+0683c9c1 | 3:13.6.233.17-1.24.22.1.1.module_el8.10.0+4331+0683c9c1 |
nodejsAlmaLinux:9 From an advisory covering 13 CVEs |
before 1:24.22.1-3.module_el9.8.0+333+788f3075 | 1:24.22.1-3.module_el9.8.0+333+788f3075 |
nodejs-develAlmaLinux:9 From an advisory covering 13 CVEs |
before 1:24.22.1-3.module_el9.8.0+333+788f3075 | 1:24.22.1-3.module_el9.8.0+333+788f3075 |
nodejs-docsAlmaLinux:9 From an advisory covering 13 CVEs |
before 1:24.22.1-3.module_el9.8.0+333+788f3075 | 1:24.22.1-3.module_el9.8.0+333+788f3075 |
nodejs-full-i18nAlmaLinux:9 From an advisory covering 13 CVEs |
before 1:24.22.1-3.module_el9.8.0+333+788f3075 | 1:24.22.1-3.module_el9.8.0+333+788f3075 |
nodejs-libsAlmaLinux:9 From an advisory covering 13 CVEs |
before 1:24.22.1-3.module_el9.8.0+333+788f3075 | 1:24.22.1-3.module_el9.8.0+333+788f3075 |
nodejs-nodemonAlmaLinux:9 From an advisory covering 13 CVEs |
before 3.1.14-3.module_el9.8.0+292+f4eaf8b2 | 3.1.14-3.module_el9.8.0+292+f4eaf8b2 |
nodejs-packagingAlmaLinux:9 From an advisory covering 13 CVEs |
before 2021.06-6.module_el9.7.0+209+ecf6523e | 2021.06-6.module_el9.7.0+209+ecf6523e |
nodejs-packaging-bundlerAlmaLinux:9 From an advisory covering 13 CVEs |
before 2021.06-6.module_el9.7.0+209+ecf6523e | 2021.06-6.module_el9.7.0+209+ecf6523e |
npmAlmaLinux:9 From an advisory covering 13 CVEs |
before 1:11.19.1-1.24.22.1.3.module_el9.8.0+333+788f3075 | 1:11.19.1-1.24.22.1.3.module_el9.8.0+333+788f3075 |
v8-13.6-develAlmaLinux:9 From an advisory covering 13 CVEs |
before 3:13.6.233.17-1.24.22.1.3.module_el9.8.0+333+788f3075 | 3:13.6.233.17-1.24.22.1.3.module_el9.8.0+333+788f3075 |
js-jqueryAzure Linux:3 |
through 3.5.0-4 | None known |
nodejs-nodemonAzure Linux:3 |
through 2.0.3-5 | None known |
python-tensorboardAzure Linux:3 |
through 2.16.2-6 | None known |
brace-expansionTuxCare:npm |
1.1.20-tuxcare.0 up to 1.1.20-tuxcare.1, plus listed versions 1.1.20 |
1.1.20-tuxcare.1 |
brace-expansionTuxCare:npm |
1.1.18-tuxcare.0 up to 1.1.18-tuxcare.2, plus listed versions 1.1.181.1.18-tuxcare.1 |
1.1.18-tuxcare.2 |
brace-expansionTuxCare:npm From an advisory covering 2 CVEs |
4.0.1-tuxcare.0 up to 4.0.1-tuxcare.2, plus listed versions 4.0.14.0.1-tuxcare.1 |
4.0.1-tuxcare.2 |
brace-expansionTuxCare:npm |
2.0.2-tuxcare.0 up to 2.0.2-tuxcare.2, plus listed versions 2.0.22.0.2-tuxcare.1 |
2.0.2-tuxcare.2 |
brace-expansionTuxCare:npm |
1.1.16-tuxcare.0 up to 1.1.16-tuxcare.2, plus listed versions 1.1.161.1.16-tuxcare.1 |
1.1.16-tuxcare.2 |
brace-expansionTuxCare:npm |
1.1.15-tuxcare.0 up to 1.1.15-tuxcare.2, plus listed versions 1.1.151.1.15-tuxcare.1 |
1.1.15-tuxcare.2 |
brace-expansionTuxCare:npm |
1.1.14-tuxcare.0 up to 1.1.14-tuxcare.2, plus listed versions 1.1.141.1.14-tuxcare.1 |
1.1.14-tuxcare.2 |
brace-expansionTuxCare:npm From an advisory covering 3 CVEs |
2.0.1-tuxcare.0 up to 2.0.1-tuxcare.4, plus listed versions 2.0.12.0.1-tuxcare.12.0.1-tuxcare.22.0.1-tuxcare.3 |
2.0.1-tuxcare.4 |
brace-expansionTuxCare:npm |
2.1.6-tuxcare.0 up to 2.1.6-tuxcare.1, plus listed versions 2.1.6 |
2.1.6-tuxcare.1 |
brace-expansionTuxCare:npm |
5.0.11-tuxcare.0 up to 5.0.11-tuxcare.1, plus listed versions 5.0.11 |
5.0.11-tuxcare.1 |
brace-expansionTuxCare:npm |
5.0.10-tuxcare.0 up to 5.0.10-tuxcare.2, plus listed versions 5.0.105.0.10-tuxcare.1 |
5.0.10-tuxcare.2 |
brace-expansionTuxCare:npm |
2.1.4-tuxcare.0 up to 2.1.4-tuxcare.2, plus listed versions 2.1.42.1.4-tuxcare.1 |
2.1.4-tuxcare.2 |
brace-expansionTuxCare:npm |
2.1.3-tuxcare.0 up to 2.1.3-tuxcare.3, plus listed versions 2.1.32.1.3-tuxcare.12.1.3-tuxcare.2 |
2.1.3-tuxcare.3 |
brace-expansionTuxCare:npm |
5.0.9-tuxcare.0 up to 5.0.9-tuxcare.3, plus listed versions 5.0.95.0.9-tuxcare.15.0.9-tuxcare.2 |
5.0.9-tuxcare.3 |
brace-expansionTuxCare:npm |
2.1.2-tuxcare.0 up to 2.1.2-tuxcare.4, plus listed versions 2.1.22.1.2-tuxcare.12.1.2-tuxcare.22.1.2-tuxcare.3 |
2.1.2-tuxcare.4 |
brace-expansionTuxCare:npm From an advisory covering 4 CVEs |
1.1.11-tuxcare.0 up to 1.1.11-tuxcare.3, plus listed versions 1.1.111.1.11-tuxcare.11.1.11-tuxcare.2 |
1.1.11-tuxcare.3 |
brace-expansionTuxCare:npm From an advisory covering 2 CVEs |
5.0.4-tuxcare.0 up to 5.0.4-tuxcare.2, plus listed versions 5.0.45.0.4-tuxcare.1 |
5.0.4-tuxcare.2 |
brace-expansionTuxCare:npm |
5.0.8-tuxcare.0 up to 5.0.8-tuxcare.4, plus listed versions 5.0.85.0.8-tuxcare.15.0.8-tuxcare.25.0.8-tuxcare.3 |
5.0.8-tuxcare.4 |
brace-expansionTuxCare:npm From an advisory covering 6 CVEs |
5.0.5-tuxcare.0 up to 5.0.5-tuxcare.2, plus listed versions 5.0.55.0.5-tuxcare.1 |
5.0.5-tuxcare.2 |
brace-expansionTuxCare:npm From an advisory covering 4 CVEs |
1.1.12-tuxcare.0 up to 1.1.12-tuxcare.5, plus listed versions 1.1.121.1.12-tuxcare.11.1.12-tuxcare.21.1.12-tuxcare.3 |
1.1.12-tuxcare.5 |
brace-expansionTuxCare:npm From an advisory covering 6 CVEs |
5.0.6-tuxcare.0 up to 5.0.6-tuxcare.1, plus listed versions 5.0.6 |
5.0.6-tuxcare.1 |
brace-expansionTuxCare:npm From an advisory covering 7 CVEs |
5.0.3-tuxcare.0 up to 5.0.3-tuxcare.1, plus listed versions 5.0.3 |
5.0.3-tuxcare.1 |
brace-expansionTuxCare:npm From an advisory covering 7 CVEs |
5.0.2-tuxcare.0 up to 5.0.2-tuxcare.1, plus listed versions 5.0.2 |
5.0.2-tuxcare.1 |
brace-expansionTuxCare:npm From an advisory covering 5 CVEs |
1.1.3-tuxcare.0 up to 1.1.3-tuxcare.2, plus listed versions 1.1.31.1.3-tuxcare.1 |
1.1.3-tuxcare.2 |
brace-expansionTuxCare:npm |
1.1.1-tuxcare.0 up to 1.1.1-tuxcare.2, plus listed versions 1.1.11.1.1-tuxcare.1 |
1.1.1-tuxcare.2 |
node-brace-expansionDebian:12 |
All versions, plus listed versions 2.0.1+~1.1.0-12.0.1+~1.1.0-22.0.1-22.0.3+~1.1.2-12.0.3+~1.1.2-22.0.3+~1.1.2-32.1.4+~1.1.2-12.1.7+~1.1.2-1 |
None known |
node-brace-expansionDebian:13 |
All versions, plus listed versions 2.0.1+~1.1.0-22.0.3+~1.1.2-12.0.3+~1.1.2-22.0.3+~1.1.2-32.1.4+~1.1.2-12.1.7+~1.1.2-1 |
None known |
node-brace-expansionDebian:14 |
before 2.1.7+~1.1.2-1, plus listed versions 2.0.1+~1.1.0-22.0.3+~1.1.2-12.0.3+~1.1.2-22.0.3+~1.1.2-32.1.4+~1.1.2-1 |
2.1.7+~1.1.2-1 |
nodejs22Red Hat:hummingbird:1 From an advisory covering 3 CVEs |
before 0:22.23.3-2.3.2.2.hum1 | 0:22.23.3-2.3.2.2.hum1 |
nodejs22-binRed Hat:hummingbird:1 From an advisory covering 3 CVEs |
before 0:22.23.3-2.3.2.2.hum1 | 0:22.23.3-2.3.2.2.hum1 |
nodejs22-develRed Hat:hummingbird:1 From an advisory covering 3 CVEs |
before 0:22.23.3-2.3.2.2.hum1 | 0:22.23.3-2.3.2.2.hum1 |
nodejs22-docsRed Hat:hummingbird:1 From an advisory covering 3 CVEs |
before 0:22.23.3-2.3.2.2.hum1 | 0:22.23.3-2.3.2.2.hum1 |
nodejs22-full-i18nRed Hat:hummingbird:1 From an advisory covering 3 CVEs |
before 0:22.23.3-2.3.2.2.hum1 | 0:22.23.3-2.3.2.2.hum1 |
nodejs22-libsRed Hat:hummingbird:1 From an advisory covering 3 CVEs |
before 0:22.23.3-2.3.2.2.hum1 | 0:22.23.3-2.3.2.2.hum1 |
nodejs22-npmRed Hat:hummingbird:1 From an advisory covering 3 CVEs |
before 0:10.9.9-1.22.23.3.2.3.2.2.hum1 | 0:10.9.9-1.22.23.3.2.3.2.2.hum1 |
nodejs22-npm-binRed Hat:hummingbird:1 From an advisory covering 3 CVEs |
before 0:22.23.3-2.3.2.2.hum1 | 0:22.23.3-2.3.2.2.hum1 |
nodejs24Red Hat:hummingbird:1 From an advisory covering 3 CVEs |
before 0:24.21.0-1.2.hum1 | 0:24.21.0-1.2.hum1 |
nodejs24-binRed Hat:hummingbird:1 From an advisory covering 3 CVEs |
before 0:24.21.0-1.2.hum1 | 0:24.21.0-1.2.hum1 |
nodejs24-develRed Hat:hummingbird:1 From an advisory covering 3 CVEs |
before 0:24.21.0-1.2.hum1 | 0:24.21.0-1.2.hum1 |
nodejs24-docsRed Hat:hummingbird:1 From an advisory covering 3 CVEs |
before 0:24.21.0-1.2.hum1 | 0:24.21.0-1.2.hum1 |
nodejs24-full-i18nRed Hat:hummingbird:1 From an advisory covering 3 CVEs |
before 0:24.21.0-1.2.hum1 | 0:24.21.0-1.2.hum1 |
nodejs24-libsRed Hat:hummingbird:1 From an advisory covering 3 CVEs |
before 0:24.21.0-1.2.hum1 | 0:24.21.0-1.2.hum1 |
nodejs24-npmRed Hat:hummingbird:1 From an advisory covering 3 CVEs |
before 0:11.19.0-1.24.21.0.1.2.hum1 | 0:11.19.0-1.24.21.0.1.2.hum1 |
nodejs24-npm-binRed Hat:hummingbird:1 From an advisory covering 3 CVEs |
before 0:11.19.0-1.24.21.0.1.2.hum1 | 0:11.19.0-1.24.21.0.1.2.hum1 |
v8-13.6-develRed Hat:hummingbird:1 From an advisory covering 3 CVEs |
before 0:13.6.233.17-1.24.21.0.1.2.hum1 | 0:13.6.233.17-1.24.21.0.1.2.hum1 |
nodejs26Red Hat:hummingbird:1 From an advisory covering 3 CVEs |
before 0:26.10.0-0.3.hum1 | 0:26.10.0-0.3.hum1 |
nodejs26-binRed Hat:hummingbird:1 From an advisory covering 3 CVEs |
before 0:26.10.0-0.3.hum1 | 0:26.10.0-0.3.hum1 |
nodejs26-develRed Hat:hummingbird:1 From an advisory covering 3 CVEs |
before 0:26.10.0-0.3.hum1 | 0:26.10.0-0.3.hum1 |
nodejs26-docsRed Hat:hummingbird:1 From an advisory covering 3 CVEs |
before 0:26.10.0-0.3.hum1 | 0:26.10.0-0.3.hum1 |
nodejs26-full-i18nRed Hat:hummingbird:1 From an advisory covering 3 CVEs |
before 0:26.10.0-0.3.hum1 | 0:26.10.0-0.3.hum1 |
nodejs26-libsRed Hat:hummingbird:1 From an advisory covering 3 CVEs |
before 0:26.10.0-0.3.hum1 | 0:26.10.0-0.3.hum1 |
nodejs26-npmRed Hat:hummingbird:1 From an advisory covering 3 CVEs |
before 0:11.19.1-1.26.10.0.0.3.hum1 | 0:11.19.1-1.26.10.0.0.3.hum1 |
nodejs26-npm-binRed Hat:hummingbird:1 From an advisory covering 3 CVEs |
before 0:26.10.0-0.3.hum1 | 0:26.10.0-0.3.hum1 |
nodejs-nodemonRocky Linux:8 From an advisory covering 13 CVEs |
before 0:3.1.14-2.module+el8.10.0+40277+b1b3f89e | 0:3.1.14-2.module+el8.10.0+40277+b1b3f89e |
nodejs-nodemonRocky Linux:8 From an advisory covering 13 CVEs |
before 0:3.1.14-2.module+el8.10.0+40278+50b003a3 | 0:3.1.14-2.module+el8.10.0+40278+50b003a3 |
nodejs-packagingRocky Linux:8 From an advisory covering 13 CVEs |
before 0:2021.06-6.module+el8.10.0+40048+6d99f608 | 0:2021.06-6.module+el8.10.0+40048+6d99f608 |
nodejs-packagingRocky Linux:8 From an advisory covering 13 CVEs |
before 0:2021.06-6.module+el8.10.0+40171+8fa9c325 | 0:2021.06-6.module+el8.10.0+40171+8fa9c325 |
nodejs-packagingRocky Linux:8 From an advisory covering 13 CVEs |
before 0:2021.06-6.module+el8.10.0+40172+38f6fdd1 | 0:2021.06-6.module+el8.10.0+40172+38f6fdd1 |
nodejsRocky Linux:9 From an advisory covering 13 CVEs |
before 1:24.22.1-3.module+el9.8.0+40401+e24b8c95 | 1:24.22.1-3.module+el9.8.0+40401+e24b8c95 |
nodejs-nodemonRocky Linux:9 From an advisory covering 13 CVEs |
before 0:3.1.14-3.module+el9.8.0+40281+14cc6568 | 0:3.1.14-3.module+el9.8.0+40281+14cc6568 |
nodejs-packagingRocky Linux:9 From an advisory covering 13 CVEs |
before 0:2021.06-6.module+el9.7.0+40165+d075e3f2 | 0:2021.06-6.module+el9.7.0+40165+d075e3f2 |
nodejs-packagingRocky Linux:9 From an advisory covering 13 CVEs |
before 0:2021.06-6.module+el9.8.0+40164+8921ab53 | 0:2021.06-6.module+el9.8.0+40164+8921ab53 |
nodejs-packagingRocky Linux:9 From an advisory covering 13 CVEs |
before 0:2021.06-6.module+el9.7.0+40052+e32ea525 | 0:2021.06-6.module+el9.7.0+40052+e32ea525 |
nodejs-packagingRocky Linux:9 From an advisory covering 13 CVEs |
before 0:2021.06-6.module+el9.7.0+40153+4d595597 | 0:2021.06-6.module+el9.7.0+40153+4d595597 |
node-brace-expansionUbuntu:18.04:LTS |
All versions, plus listed versions 1.1.8-1 |
None known |
node-brace-expansionUbuntu:20.04:LTS |
All versions, plus listed versions 1.1.8-11.1.11-1 |
None known |
node-brace-expansionUbuntu:22.04:LTS |
All versions, plus listed versions 2.0.0-12.0.1-1 |
None known |
node-brace-expansionUbuntu:24.04:LTS |
All versions, plus listed versions 2.0.1-22.0.1+~1.1.0-1 |
None known |
node-brace-expansionUbuntu:26.10 |
All versions, plus listed versions 2.0.1+~1.1.0-22.0.3+~1.1.2-22.0.3+~1.1.2-32.1.4+~1.1.2-1 |
None known |
node-brace-expansionUbuntu:26.04:LTS |
All versions, plus listed versions 2.0.1+~1.1.0-2 |
None known |
pi-coding-agentopenSUSE:Tumbleweed From an advisory covering 2 CVEs |
before 1.0.0-1.1 | 1.0.0-1.1 |
agama-web-uiopenSUSE:Tumbleweed From an advisory covering 11 CVEs |
before 25+475.275dd4727-56.1 | 25+475.275dd4727-56.1 |
pi-coding-agentopenSUSE:Leap 16.0 From an advisory covering 11 CVEs |
before 1.0.4-bp160.1.1 | 1.0.4-bp160.1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, aliases, references | OSV | |
| 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-102277 is a medium vulnerability (CVSS 5.3) in Juliangruber Brace-expansion, published September 28, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.43%, the 37th percentile. Fixed in brace-expansion 5.0.12.
References
github.com/juliangruber/brace-expansion/security/advisories/GHSA-q2hr-2g5m-vwhr
github.com/juliangruber/brace-expansion/commit/33a5ef17b8d800bbfa8c52b14c39043b6aac1a96
github.com/juliangruber/brace-expansion/commit/bdff773f98e5988616b7039cc9b508df5d640b22
github.com/juliangruber/brace-expansion/commit/c55e67d8d8b1c56a2474afff15c2891166b2d364
github.com/juliangruber/brace-expansion/commit/ffdfa3e3806bed17c0874b8f1439b084de354a7e
nvd.nist.gov/vuln/detail/CVE-2026-102277
Show 97 moreShow less
github.com/advisories/GHSA-q2hr-2g5m-vwhr
access.redhat.com/errata/RHSA-2026:92376
access.redhat.com/security/cve/CVE-2026-101911
access.redhat.com/security/cve/CVE-2026-102276
access.redhat.com/security/cve/CVE-2026-102277
access.redhat.com/security/cve/CVE-2026-102278
access.redhat.com/security/cve/CVE-2026-105481
access.redhat.com/security/cve/CVE-2026-105482
access.redhat.com/security/cve/CVE-2026-105483
access.redhat.com/security/cve/CVE-2026-106069
access.redhat.com/security/cve/CVE-2026-106071
access.redhat.com/security/cve/CVE-2026-106072
access.redhat.com/security/cve/CVE-2026-106073
access.redhat.com/security/cve/CVE-2026-106074
access.redhat.com/security/cve/CVE-2026-111497
bugzilla.redhat.com/2542596
bugzilla.redhat.com/2542700
bugzilla.redhat.com/2542706
bugzilla.redhat.com/2542707
bugzilla.redhat.com/2558973
bugzilla.redhat.com/2559870
bugzilla.redhat.com/2559873
bugzilla.redhat.com/2559875
bugzilla.redhat.com/2560016
bugzilla.redhat.com/2560018
bugzilla.redhat.com/2560019
bugzilla.redhat.com/2560021
bugzilla.redhat.com/2560022
errata.almalinux.org/8/ALSA-2026-92376.html
access.redhat.com/errata/RHSA-2026:92378
errata.almalinux.org/9/ALSA-2026-92378.html
github.com/CVEProject/cvelistV5/tree/main/cves/2026/102xxx/CVE-2026-102277.json
security-tracker.debian.org/tracker/CVE-2026-102277
github.com/juliangruber/brace-expansion
access.redhat.com/errata/RHSA-2026:74161
images.redhat.com
access.redhat.com/security/updates/classification
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_74161.json
bugzilla.redhat.com/show_bug.cgi?id=2542707
cve.org/CVERecord?id=CVE-2026-102276
nvd.nist.gov/vuln/detail/CVE-2026-102276
github.com/juliangruber/brace-expansion/commit/0bcbfc0a5928c3073d48f42999d1ce4fc1c42fbc
github.com/juliangruber/brace-expansion/commit/316359e6019c39b3254c8ba8e25dc586a480652c
github.com/juliangruber/brace-expansion/commit/5171e681c0922b7ae8bfaf9a331e309107be6edc
github.com/juliangruber/brace-expansion/commit/6735c94873ca570bcdd6a0690033bdd3126379d3
github.com/juliangruber/brace-expansion/security/advisories/GHSA-6j4f-fj2g-mc7p
bugzilla.redhat.com/show_bug.cgi?id=2542706
cve.org/CVERecord?id=CVE-2026-102277
bugzilla.redhat.com/show_bug.cgi?id=2542700
cve.org/CVERecord?id=CVE-2026-102278
nvd.nist.gov/vuln/detail/CVE-2026-102278
github.com/juliangruber/brace-expansion/commit/1efee7c397c191da6287a78ec19512476a966a7b
github.com/juliangruber/brace-expansion/commit/935d78f32f335b2ff76578e5c5e877d31ae9888c
github.com/juliangruber/brace-expansion/commit/de84f144e9816f30e25fc8179e2e1249ab6df0db
github.com/juliangruber/brace-expansion/security/advisories/GHSA-qhr7-859c-m2p7
access.redhat.com/errata/RHSA-2026:74167
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_74167.json
access.redhat.com/errata/RHSA-2026:74168
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_74168.json
errata.rockylinux.org/RLSA-2026:92376
bugzilla.redhat.com/show_bug.cgi?id=2542596
bugzilla.redhat.com/show_bug.cgi?id=2558973
bugzilla.redhat.com/show_bug.cgi?id=2559870
bugzilla.redhat.com/show_bug.cgi?id=2559873
bugzilla.redhat.com/show_bug.cgi?id=2559875
bugzilla.redhat.com/show_bug.cgi?id=2560016
bugzilla.redhat.com/show_bug.cgi?id=2560018
bugzilla.redhat.com/show_bug.cgi?id=2560019
bugzilla.redhat.com/show_bug.cgi?id=2560021
bugzilla.redhat.com/show_bug.cgi?id=2560022
errata.rockylinux.org/RLSA-2026:92378
ubuntu.com/security/CVE-2026-102277
suse.com/security/cve/CVE-2026-102277
suse.com/security/cve/CVE-2026-102278
suse.com/security/cve/CVE-2026-110725
suse.com/security/cve/CVE-2026-111181
suse.com/security/cve/CVE-2026-111755
suse.com/security/cve/CVE-2026-111756
suse.com/security/cve/CVE-2026-115754
suse.com/security/cve/CVE-2026-115897
suse.com/security/cve/CVE-2026-116689
suse.com/security/cve/CVE-2026-75899
suse.com/security/cve/CVE-2026-84369
suse.com/security/cve/CVE-2026-86472
bugzilla.suse.com/1279832
bugzilla.suse.com/1283188
bugzilla.suse.com/1283392
bugzilla.suse.com/1283412
suse.com/security/cve/CVE-2026-102276
suse.com/security/cve/CVE-2026-84890
suse.com/security/cve/CVE-2026-84933
suse.com/security/cve/CVE-2026-84947
suse.com/security/cve/CVE-2026-84961
suse.com/security/cve/CVE-2026-85008
suse.com/security/cve/CVE-2026-85014
suse.com/security/cve/CVE-2026-85024
suse.com/security/cve/CVE-2026-85152
Left out here: the rest of 1 source description. The JSON record has them.