Security Vulnerability Report
中文
CVE-2026-41665 CVSS 6.1 MEDIUM

CVE-2026-41665

Published: 2026-04-22 07:16:14
Last Modified: 2026-04-27 18:21:40

Description

Integer overflow in scratch buffer initialization size calculation in Samsung Open Source ONE cause incorrect memory initialization for large intermediate tensors. Affected version is prior to commit 1.30.0.

CVSS Details

CVSS Score
6.1
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:H

Configurations (Affected Products)

cpe:2.3:a:samsung:one:*:*:*:*:*:*:*:* - VULNERABLE
Samsung Open Source ONE < 1.30.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
// PoC Concept for Integer Overflow in Buffer Size Calculation // This simulates the overflow in scratch buffer initialization #include <stdio.h> #include <stdlib.h> #include <stdint.h> void simulate_tensor_allocation(size_t dim_x, size_t dim_y, size_t elem_size) { // Vulnerability: Integer overflow in size calculation // If dim_x * dim_y is very large, 'total_size' wraps around size_t total_size = dim_x * dim_y * elem_size; printf("Allocating buffer of size: %zu\n", total_size); // Allocation based on incorrect (small) size void *buffer = malloc(total_size); if (!buffer) { perror("malloc failed"); return; } // Initialization loop uses original dimensions, leading to overflow // In real scenario, this would be a memset or initialization loop printf("Initializing buffer based on original dimensions...\n"); for (size_t i = 0; i < dim_x; i++) { for (size_t j = 0; j < dim_y; j++) { // Calculate index to write size_t offset = (i * dim_y + j) * elem_size; // This write will overflow the allocated buffer if total_size wrapped around if (offset < total_size) { *((char*)buffer + offset) = 0; } else { printf("Heap corruption detected at index %zu\n", offset); free(buffer); return; } } } free(buffer); } int main() { // Trigger condition: Large intermediate tensors causing multiplication overflow // Example: 0x100000 * 0x10000 on 32-bit systems, or specific large values on 64-bit // that exceed the practical memory limits but wrap around in size_t arithmetic size_t large_dim = 1073741824; // 2^30 size_t another_dim = 2; size_t size_of_element = 4; // e.g., float printf("Attempting to trigger CVE-2026-41665 scenario...\n"); simulate_tensor_allocation(large_dim, another_dim, size_of_element); return 0; }

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-41665", "sourceIdentifier": "[email protected]", "published": "2026-04-22T07:16:13.763", "lastModified": "2026-04-27T18:21:39.640", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Integer overflow in scratch buffer initialization size calculation in Samsung Open Source ONE cause incorrect memory initialization for large intermediate tensors.\nAffected version is prior to commit 1.30.0."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:H", "baseScore": 6.1, "baseSeverity": "MEDIUM", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "REQUIRED", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "LOW", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.8, "impactScore": 4.2}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-190"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:samsung:one:*:*:*:*:*:*:*:*", "versionEndExcluding": "1.30.0", "matchCriteriaId": "4DBBA2E4-036F-40C0-B2EF-D14AB3C83B6E"}]}]}], "references": [{"url": "https://github.com/Samsung/ONE/pull/16481", "source": "[email protected]", "tags": ["Issue Tracking", "Patch"]}]}}