{"metadata": {"vulnerability": "GHSA-QXG6-89MG-RQV8", "count": 10, "kinds": {"milestone": 3, "sighting": 1, "kev": 0, "other": 6}}, "data": [{"timestamp": "2026-10-19T21:30:47.245Z", "date_only": false, "value": "2026-10-19T21:30:47.245Z", "kind": "milestone", "label": "Reserved", "source": "cvelistv5 \u00b7 CVE-2026-112949", "record": "CVE-2026-112949", "field": "cveMetadata.dateReserved"}, {"timestamp": "2026-10-20T15:19:03.799Z", "date_only": false, "value": "2026-10-20T15:19:03.799Z", "kind": "milestone", "label": "Published", "source": "cvelistv5 \u00b7 CVE-2026-112949", "record": "CVE-2026-112949", "field": "cveMetadata.datePublished"}, {"timestamp": "2026-10-20T15:19:03.799Z", "date_only": false, "value": "2026-10-20T15:19:03.799Z", "kind": "other", "label": "Updated", "source": "cvelistv5 \u00b7 CVE-2026-112949 / GitHub_M", "record": "CVE-2026-112949", "field": "containers.cna.providerMetadata.dateUpdated"}, {"timestamp": "2026-10-20T15:30:42.402Z", "date_only": false, "value": "2026-10-20T15:30:42.402868Z", "kind": "sighting", "label": "Seen", "source": "https://infosec.exchange/users/cve/statuses/117473951214582861", "record": "GHSA-qxg6-89mg-rqv8", "field": "creation_timestamp", "uuid": "4862209f-f94a-4ba9-a5c2-b61c6be04ff0", "content": "CVE-2026-112949 Vitest: Code injection via unauthenticated manual mock registration Vitest is a Vite-native testing framework for JavaScript and TypeScript projects. From 2.1.0-beta.7 until 4.1.12 and 5.0.3, an unauthenticated non-browser WebSocket client that can reach a development server using interceptorPlugin can register a manual mock whose attacker-controlled url createManualModuleSource inserts unescaped into generated module source. When the developer browser loads the affected module, attacker-controlled JavaScript executes on the development-server origin. This issue is fixed in versions 4.1.12 and 5.0.3.\nhttps://www.cve.org/CVERecord?id=CVE-2026-112949https://github.com/vitest-dev/vitest/security/advisories/GHSA-qxg6-89mg-rqv8https://github.com/vitest-dev/vitest/commit/15cc006aa9f8683dc5f7e895d011fa7dc751ce35https://github.com/vitest-dev/vitest/commit/b825313243dc55757e8d7c0f9e7a792135e13473https://github.com/vitest-dev/vitest/releases/tag/v4.1.12https://github.com/vitest-dev/vitest/releases/tag/v5.0.3#vitest-dev #vitest #@vitest #mocker#CVE_2026_112949#bot", "url": "https://infosec.exchange/users/cve/statuses/117473951214582861"}, {"timestamp": "2026-10-20T16:17:05Z", "date_only": false, "value": "2026-10-20T16:17:05Z", "kind": "other", "label": "Nvd published at", "source": "github", "record": "GHSA-QXG6-89MG-RQV8", "field": "database_specific.nvd_published_at"}, {"timestamp": "2026-10-21T19:54:26Z", "date_only": false, "value": "2026-10-21T19:54:26Z", "kind": "milestone", "label": "Published", "source": "github", "record": "GHSA-QXG6-89MG-RQV8", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event"}, {"timestamp": "2026-10-21T19:54:26Z", "date_only": false, "value": "2026-10-21T19:54:26Z", "kind": "other", "label": "Updated", "source": "github", "record": "GHSA-QXG6-89MG-RQV8", "field": "modified"}, {"timestamp": "2026-10-23T01:42:18.590Z", "date_only": false, "value": "2026-10-23T01:42:18.590758Z", "kind": "other", "label": "Recorded", "source": "cvelistv5 \u00b7 CVE-2026-112949 / CISA-ADP", "record": "CVE-2026-112949", "field": "containers.adp.0.metrics.0.other.content.timestamp"}, {"timestamp": "2026-10-23T01:42:51.858Z", "date_only": false, "value": "2026-10-23T01:42:51.858Z", "kind": "other", "label": "Updated", "source": "cvelistv5 \u00b7 CVE-2026-112949", "record": "CVE-2026-112949", "field": "cveMetadata.dateUpdated"}, {"timestamp": "2026-10-23T01:42:51.858Z", "date_only": false, "value": "2026-10-23T01:42:51.858Z", "kind": "other", "label": "Updated", "source": "cvelistv5 \u00b7 CVE-2026-112949 / CISA-ADP", "record": "CVE-2026-112949", "field": "containers.adp.0.providerMetadata.dateUpdated"}], "metrics": {"as_of": "2026-10-29T11:51:39.978Z", "anchors": {"origin": {"timestamp": "2026-10-21T19:54:26Z", "date_only": false, "value": "2026-10-21T19:54:26Z", "kind": "milestone", "label": "Published", "source": "github", "record": "GHSA-QXG6-89MG-RQV8", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event"}, "discovery": null, "report": null, "acknowledgement": null, "disclosure": {"timestamp": "2026-10-21T19:54:26Z", "date_only": false, "value": "2026-10-21T19:54:26Z", "kind": "milestone", "label": "Published", "source": "github", "record": "GHSA-QXG6-89MG-RQV8", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event"}, "exploit_publication": null, "exploitation": null, "patch": null}, "vendor_response_time": {"available": false, "missing": ["start", "end"]}, "time_to_exploit": {"available": false, "missing": ["end"]}, "disclosure_to_exploit": {"available": false, "missing": ["end"]}, "disclosure_to_exploit_publication": {"available": false, "missing": ["end"]}, "time_to_patch": {"available": false, "missing": ["start", "end"]}, "total_time_to_patch": {"available": false, "missing": ["start", "end"]}, "disclosure_to_patch": {"available": false, "missing": ["end"]}, "time_unpatched": {"available": true, "seconds": 662233.978622, "hours": 183.95388295055554, "days": 7.664745122939815, "min_seconds": 662233.978622, "max_seconds": 662233.978622, "approximate": false, "ongoing": true, "order_known": true, "batch_listing": false, "end_before_start": false, "start": {"timestamp": "2026-10-21T19:54:26Z", "date_only": false, "value": "2026-10-21T19:54:26Z", "kind": "milestone", "label": "Published", "source": "github", "record": "GHSA-QXG6-89MG-RQV8", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event"}, "end": {"timestamp": "2026-10-29T11:51:39.978Z", "date_only": false, "label": "As of", "source": "Calculation clock"}}, "exploitation_to_patch": {"available": false, "missing": ["start"]}, "exploit_publication_to_patch": {"available": false, "missing": ["start"]}}}
