Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CWE-193 (Off-by-one错误) — Vulnerability Class 93

93 vulnerabilities classified as CWE-193 (Off-by-one错误). AI Chinese analysis included.

CWE-193 represents an off-by-one error, a logic flaw where a product calculates or utilizes an incorrect maximum or minimum value that is exactly one unit greater or lesser than the correct limit. This weakness typically arises in boundary conditions during array indexing, loop iterations, or buffer allocation, leading to memory corruption or unexpected program termination. Attackers exploit these miscalculations to trigger buffer overflows, allowing them to overwrite adjacent memory structures with malicious payloads. By exceeding intended bounds, adversaries can execute arbitrary code, escalate privileges, or cause denial-of-service conditions. To prevent such vulnerabilities, developers must rigorously validate boundary conditions, employ static analysis tools to detect logic errors, and use high-level languages with automatic bounds checking. Additionally, thorough code reviews focusing on loop limits and array accesses ensure that integer arithmetic accurately reflects the intended data structure sizes, thereby eliminating the discrepancy that enables exploitation.

MITRE CWE Description
A product calculates or uses an incorrect maximum or minimum value that is 1 more, or 1 less, than the correct value.
Common Consequences (3)
Availability DoS: Crash, Exit, or Restart, DoS: Resource Consumption (CPU), DoS: Resource Consumption (Memory), DoS: Instability
This weakness will generally lead to undefined behavior and therefore crashes. In the case of overflows involving loop index variables, the likelihood of infinite loops is also high.
Integrity Modify Memory
If the value in question is important to data (as opposed to flow), simple data corruption has occurred. Also, if the wrap around results in other conditions such as buffer overflows, further memory corruption may occur.
Confidentiality, Availability, Access Control Execute Unauthorized Code or Commands, Bypass Protection Mechanism
This weakness can sometimes trigger buffer overflows which can be used to execute arbitrary code. This is usually outside the scope of a program's implicit security policy.
Mitigations (1)
Implementation When copying character arrays or using character manipulation methods, the correct size parameter must be used to account for the null terminator that needs to be added at the end of the array. Some examples of functions susceptible to this weakness in C include strcpy(), strncpy(), strcat(), strncat(), printf(), sprintf(), scanf() and sscanf().
Examples (2)
The following code allocates memory for a maximum number of widgets. It then gets a user-specified number of widgets, making sure that the user does not request too many. It then initializes the elements of the array using InitializeWidget(). Because the number of widgets can vary for each request, the code inserts a NULL pointer to signify the location of the last widget.
int i; unsigned int numWidgets; Widget **WidgetList; numWidgets = GetUntrustedSizeValue(); if ((numWidgets == 0) || (numWidgets > MAX_NUM_WIDGETS)) { ExitError("Incorrect number of widgets requested!"); } WidgetList = (Widget **)malloc(numWidgets * sizeof(Widget *)); printf("WidgetList ptr=%p\n", WidgetList); for(i=0; i<numWidgets; i++) { WidgetList[i] = InitializeWidget(); } WidgetList[numWidgets] = NULL; showWidgets(WidgetList);
Bad · C
In this example, the code does not account for the terminating null character, and it writes one byte beyond the end of the buffer.
char firstname[20]; char lastname[20]; char fullname[40]; fullname[0] = '\0'; strncat(fullname, firstname, 20); strncat(fullname, lastname, 20);
Bad · C
char firstname[20]; char lastname[20]; char fullname[40]; fullname[0] = '\0'; strncat(fullname, firstname, sizeof(fullname)-strlen(fullname)-1); strncat(fullname, lastname, sizeof(fullname)-strlen(fullname)-1);
Good · C
CVE ID Title CVSS Severity Published
CVE-2026-106584 OpenSSH<10.6证书过期时间错误 — OpenSSH 2.5 Low 2026-10-06
CVE-2026-104033 Sssd: sssd: access control bypass via improper ldap shadow expiration check — Red Hat Enterprise Linux 10 5.4 Medium 2026-10-06
CVE-2026-101014 Trusted Domain Project OpenDMARC DMARC Record opendmarc_util.c opendmarc_util_cleanup off-by-one — OpenDMARC 7.3 High 2026-09-28
CVE-2026-100889 Trusted Domain Project OpenDKIM Decoder util.c dkim_qp_decode off-by-one — OpenDKIM 7.3 High 2026-09-27
CVE-2026-18460 Off-by-one Error, Out-of-bounds Write vulnerability in RTI Connext Professional (Core Libraries) allows Overflow Buffers. — Connext Professional 6.9 Medium 2026-09-22
CVE-2026-83600 Netdata: Streaming protocol chart slot guard off-by-one allows ~16 GiB allocation request, crashing parent agent — netdata 6.5 Medium 2026-09-22
CVE-2026-76081 ZITADEL: Improper Role Revocation on Granted Projects during Multiple Role Deletions — zitadel 5.5 Medium 2026-09-14
CVE-2026-90781 alsa-lib through 1.2.16.1 Off-by-One Stack Buffer Overflow in __snd_ctl_ascii_elem_id_parse() — alsa-lib 4.4 Medium 2026-09-13
CVE-2026-86297 D-Link DIR-605 L2TP Control Message tunnel.c tunnel_set_params off-by-one — DIR-605 8.1 High 2026-09-07
CVE-2026-57160 PJSIP: SIP message header buffer overflow — pjproject 6.9 Medium 2026-09-04
CVE-2026-85454 MOOS core-moos through 10.4.0 Off-by-One Buffer Overflow in Serial Telegram Handling — core-moos 6.1 Medium 2026-09-03
CVE-2026-46369 Nimiq: Validity store off by one error — core-rs-albatross 7.5 High 2026-08-26
CVE-2026-65927 Apache Tomcat: RewriteValve [N] restarts at the second rule and may bypass access control — Apache Tomcat - - 2026-08-25
CVE-2026-79148 Google Chrome 数字错误漏洞 — Chrome - - 2026-08-25
CVE-2026-68767 hashcat through 7.1.2 Off-by-One Out-of-Bounds Heap Write in fgetl() — hashcat 6.1 Medium 2026-08-22
CVE-2026-66806 Microsoft Office Word Information Disclosure Vulnerability — Microsoft 365 Apps for Enterprise 5.5 Medium 2026-08-11
CVE-2026-71391 Off-by-One Error in GNU Emacs for Android — Emacs 5.3 Medium 2026-08-10
CVE-2026-11771 OpenVPN 缓冲区错误漏洞 — OpenVPN 7.0 High 2026-07-30
CVE-2026-44687 Off-by-one error in 'harden-below-nxdomain' logic can shadow a stub/forward zone by a legitimate parent's NXDOMAIN — Unbound 3.7 Low 2026-07-22
CVE-2026-50497 Windows Remote Desktop Protocol (RDP) Information Disclosure Vulnerability — Windows 10 Version 1607 6.5 Medium 2026-07-14
CVE-2026-58380 Gimp: gimp: stack buffer overflow in pnmscanner_gettoken() — Red Hat Enterprise Linux 8 7.3 High 2026-07-06
CVE-2026-12413 IKEv2 Denial of Service via malformed fragmentation — libreswan 7.5 High 2026-07-02
CVE-2026-7831 UltraVNC viewer off-by-one stack overflow in ServerInit desktop name parsing — UltraVNC 7.5 High 2026-07-01
CVE-2026-44042 UltraVNC repeater wi_uudecode off-by-one in base64 decode boundary check — UltraVNC 3.7 Low 2026-07-01
CVE-2026-58014 Glib: off-by-one error in glib/gkeyfile.c via "g_key_file_get_locale_string_list" — GLib 7.3 High 2026-06-30
CVE-2026-58374 Jouni Malinen hostapd 数字错误漏洞 — hostapd 6.5 Medium 2026-06-30
CVE-2026-56790 CANBoat - Off-by-One Global Buffer Overflow in searchForPgn() — canboat 7.3 High 2026-06-25
CVE-2026-56787 RTKLIB 2.4.3 - Off-by-One Out-of-Bounds Read in decode_ssr3 via RTCM3 SSR Message — RTKLIB 6.5 Medium 2026-06-25
CVE-2026-52804 Gogs: Privilege Escalation via Collaboration Access Mode Validation — gogs - - 2026-06-24
CVE-2026-54410 nanoMODBUS Off-by-One Buffer Overflow in recv_msg_header() via Crafted MBAP Length Field — nanoMODBUS 8.6 High 2026-06-14

Vulnerabilities classified as CWE-193 (Off-by-one错误) represent 93 CVEs. The CWE taxonomy describes the weakness; review individual CVEs for product-specific impact.