CVE-2016-6264
Description
Integer signedness error in libc/string/arm/memset.S in uClibc and uClibc-ng before 1.0.16 allows context-dependent attackers to cause a denial of service (crash) via a negative length value to the memset function.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
Affected products
2Patches
Vulnerability mechanics
Root cause
"Integer signedness error: the ARM assembly memset.S uses a signed comparison (BLT) for the length parameter, so a negative length causes an incorrect PC-relative jump leading to a crash."
Attack vector
An attacker who controls the length parameter passed to the `memset` function can supply a negative value (e.g., `0xffff0000`). Because the ARM assembly uses a signed comparison (`BLT`), a negative length is treated as less than zero, causing the computed PC-relative offset to become very large and leading to a crash [ref_id=1]. The advisory notes that the attack requires the application to allow a user to control a memory chunk larger than 2GB, making code execution "a bit unrealistic," but a denial-of-service proof of concept exists [ref_id=1].
Affected code
The vulnerable code is in `libc/string/arm/memset.S` in both uClibc and uClibc-ng before version 1.0.16 [ref_id=1]. The ARM assembly implementation of `memset` uses a signed comparison instruction (`BLT`) to check the length parameter, which causes incorrect behavior for negative length values [ref_id=1].
What the fix does
The fix, committed in uClibc-ng version 1.0.16, changes the signed comparison (`BLT`) to an unsigned comparison in the ARM `memset.S` implementation [ref_id=1]. This ensures that a negative length value (interpreted as a very large unsigned value) is not incorrectly treated as a small positive value, preventing the out-of-bounds PC-relative jump that caused the crash [ref_id=1]. No patch is shown for the original uClibc project, but the advisory indicates the same fix is needed there [ref_id=1].
Preconditions
- configThe application must use uClibc or uClibc-ng before version 1.0.16 on ARM architecture.
- inputThe attacker must be able to control the length parameter passed to the memset function (e.g., by controlling a memory chunk larger than 2GB).
Generated on May 25, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
6- www.openwall.com/lists/oss-security/2016/06/29/3nvdMailing ListPatchThird Party Advisory
- www.openwall.com/lists/oss-security/2016/07/21/2nvdMailing ListPatchThird Party Advisory
- www.openwall.com/lists/oss-security/2016/07/21/6nvdMailing ListPatchThird Party Advisory
- mailman.uclibc-ng.org/pipermail/devel/2016-July/001067.htmlnvdRelease NotesVendor Advisory
- mailman.uclibc-ng.org/pipermail/devel/2016-May/000890.htmlnvdVendor Advisory
- www.securityfocus.com/bid/91492nvdThird Party AdvisoryVDB Entry
News mentions
0No linked articles in our index yet.