Every CVE Search/ Get API key

CVE-2025-46333

z2d OOB composition could lead to invalid memory access and corruption

7.3 High

z2d is a pure Zig 2D graphics library. Versions of z2d after 0.5.1 and up to and including 0.6.0, when writing from one surface to another using z2d.compositor.StrideCompositor.run, and higher-level operations when the anti-aliasing mode is set to .default (such as Context.fill, Context.stroke, painter.fill, and painter.stroke), the source surface can be completely out-of-bounds on the x-axis, but not on the y-axis, by way of a negative offset. This results in an overflow of the value controlling the length of the stride. In non-safe optimization modes (consumers compiling with ReleaseFast or ReleaseSmall), this could potentially lead to invalid memory accesses or corruption.

This issue is patched in version 0.6.1. Users on an untagged version after v0.5.1 and before v0.6.1 are advised to update to address the vulnerability. Those still on Zig 0.13.0 are recommended to downgrade to v0.5.1.

Attack profile

How easy it is to exploit

Attack vector
Local
Complexity
High
Privileges needed
Low
User interaction
Passive

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
High

Exploit likelihood

0.18%Up 0.2 points since Apr 26, 2025
90%50%10%1%

What each source reports

CVE List Score used 7.3

z2d OOB composition could lead to invalid memory access and corruption

z2d is a pure Zig 2D graphics library. Versions of z2d after 0.5.1 and up to and including 0.6.0, when writing from one surface to another using z2d.compositor.StrideCompositor.run, and higher-level operations when the anti-aliasing mode is set to .default (such as Context.fill, Context.stroke, painter.fill, and painter.stroke), the source surface can be completely out-of-bounds on the x-axis, but not on the y-axis, by way of a negative offset. This results in an overflow of the value controlling the length of the stride. In non-safe optimization modes (consumers compiling with ReleaseFast or ReleaseSmall), this could potentially lead to invalid memory accesses or corruption.

This issue is patched in version 0.6.1. Users on an untagged version after v0.5.1 and before v0.6.1 are advised to update to address the vulnerability. Those still on Zig 0.13.0 are recommended to downgrade to v0.5.1.

Record
CVE-2025-46333
CVSS 4.0
7.3 HighCVSS:4.0/AV:L/AC:H/AT:P/PR:L/UI:P/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
Weakness
CWE-119, CWE-122, CWE-190
Updated
2026-11-02
EUVDEUVD-2025-12557 7.3

z2d is a pure Zig 2D graphics library. Versions of z2d after 0.5.1 and up to and including 0.6.0, when writing from one surface to another using z2d.compositor.StrideCompositor.run, and higher-level operations when the anti-aliasing mode is set to .default (such as Context.fill, Context.stroke, painter.fill, and painter.stroke), the source surface can be completely out-of-bounds on the x-axis, but not on the y-axis, by way of a negative offset. This results in an overflow of the value controlling the length of the stride. In non-safe optimization modes (consumers compiling with ReleaseFast or ReleaseSmall), this could potentially lead to invalid memory accesses or corruption.

This issue is patched in version 0.6.1. Users on an untagged version after v0.5.1 and before v0.6.1 are advised to update to address the vulnerability. Those still on Zig 0.13.0 are recommended to downgrade to v0.5.1.

Record
EUVD-2025-12557
CVSS 4.0
7.3 HighCVSS:4.0/AV:L/AC:H/AT:P/PR:L/UI:P/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
Updated
2026-11-02
NVD 7.3

z2d is a pure Zig 2D graphics library. Versions of z2d after 0.5.1 and up to and including 0.6.0, when writing from one surface to another using z2d.compositor.StrideCompositor.run, and higher-level operations when the anti-aliasing mode is set to .default (such as Context.fill, Context.stroke, painter.fill, and painter.stroke), the source surface can be completely out-of-bounds on the x-axis, but not on the y-axis, by way of a negative offset. This results in an overflow of the value controlling the length of the stride. In non-safe optimization modes (consumers compiling with ReleaseFast or ReleaseSmall), this could potentially lead to invalid memory accesses or corruption.

This issue is patched in version 0.6.1. Users on an untagged version after v0.5.1 and before v0.6.1 are advised to update to address the vulnerability. Those still on Zig 0.13.0 are recommended to downgrade to v0.5.1.

Record
CVE-2025-46333
CVSS 4.0
7.3 HighCVSS:4.0/AV:L/AC:H/AT:P/PR:L/UI:P/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Weakness
CWE-119, CWE-122, CWE-190
Updated
2026-11-02
OSV 7.3

z2d OOB composition could lead to invalid memory access and corruption

z2d is a pure Zig 2D graphics library. Versions of z2d after 0.5.1 and up to and including 0.6.0, when writing from one surface to another using z2d.compositor.StrideCompositor.run, and higher-level operations when the anti-aliasing mode is set to .default (such as Context.fill, Context.stroke, painter.fill, and painter.stroke), the source surface can be completely out-of-bounds on the x-axis, but not on the y-axis, by way of a negative offset. This results in an overflow of the value controlling the length of the stride. In non-safe optimization modes (consumers compiling with ReleaseFast or ReleaseSmall), this could potentially lead to invalid memory accesses or corruption.

This issue is patched in version 0.6.1. Users on an untagged version after v0.5.1 and before v0.6.1 are advised to update to address the vulnerability. Those still on Zig 0.13.0 are recommended to downgrade to v0.5.1.

Record
CVE-2025-46333
CVSS 4.0
7.3 HighCVSS:4.0/AV:L/AC:H/AT:P/PR:L/UI:P/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
Weakness
CWE-119, CWE-122, CWE-190
Updated
2026-11-02

Affected products

History

History
RecordedChangedSources
first indexedCVE List, EUVD, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2025-46333 is a high vulnerability (CVSS 7.3) in Vancluever Z2d, published April 25, 2025. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.18%, the 7th percentile. No source names a fixed version.

References

MoveEnter Open