You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
MacVim bundles the vim source at version 9.2 (patches 1-332 in the current build), which is
below the patched version 9.2.0450 that fixes CVE-2026-45130.
Fixed in: vim 9.2.0450 (commit 92993329178cb1f72d700fff45ca86e1c2d369f8)
Root Cause
In read_compound() in src/spellfile.c, the buffer size for the compound pattern is
computed as:
intc;
inttodo=len; // len is the 4-byte section length from the .spl filec=todo*2+7;
if (enc_utf8)
c+=todo*2; // total: todo * 4 + 7pat=alloc(c);
When enc_utf8 is active, todo * 4 + 7 is computed using signed 32-bit arithmetic.
For certain values of len (e.g., 0x40000002), the multiplication overflows the signed
32-bit integer, producing a small positive c. The subsequent alloc(c) returns an
undersized buffer. The loop that follows then writes up to todo * 4 bytes into this
tiny buffer, causing a heap-based buffer overflow.
The fix (commit 92993329) changes the computation to use size_t arithmetic:
Activity