{"items":[{"id":"NVI-00009786","kind":"supply_chain_event","title":"Malicious code in @brick-v2/form (npm)","revision":1,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-cxh8-f5qg-3jmp"],"plain_summary":"GitHub lists this malware advisory for @brick-v2/form, @brick-v2/form, @brick-v2/form. Published version ranges and source prerequisites are shown below; this is not an inspection of a visitor’s application.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-5bd2848196f8399e0c295c847c0aa18a"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-5bd2848196f8399e0c295c847c0aa18a","url":"https://github.com/advisories/GHSA-cxh8-f5qg-3jmp","basis":"vendor_advisory","notes":"GitHub Advisory Database; CC-BY-4.0. Each advisory links its original attribution. Null normalizes fields.","title":"GHSA-cxh8-f5qg-3jmp","publisher":"GitHub Advisory Database","observed_at":"2026-10-31T22:06:53.250Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-5bd2848196f8399e0c295c847c0aa18a"],"technology":"@brick-v2/form","known_exclusions":[],"conditions_summary":"## Source: amazon-inspector (61727d51587469176de52cbc3c82a53b4572ecfc6c7f7b4c7edf534950b0f536)\nThe package ships a tiny JavaScript stub at index.js that silently require()s a compiled native addon at prebuilds/linux-x64/metrics.node inside a try/catch that suppresses errors. On load, the addon reads a hardcoded list of credential-bearing environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS session token, GITHUB_TOKEN, NPM_TOKEN, NODE_AUTH_TOKEN, ACTIONS_RUNTIME_TOKEN, ACTIONS_ID_TOKEN_REQUEST_TOKEN, SYSTEM_ACCESSTOKEN) along with hostname, user, cwd, and OS/arch, and sends them as a JSON body via a raw TCP socket (gethostbyname/socket/connect/send) in a 'POST /native HTTP/1.0' request to the hardcoded external host oob.s4yhii.com. The addon also imports fork and setsid, consistent with detaching into a background process so the exfiltration channel survives beyond the host Node process. The compiled ELF is the entire payload; the JS wrapper exposes no form-related functionality matching the stated 'form module' description. The package manifest (scoped name @brick-v2/form, inflated version 999.0.1, UNLICENSED, minimal metadata) matches the dependency-confusion shape","public_affected_ranges":["= 999.0.1"]},{"certainty":"source_listed","source_ids":["sr-5bd2848196f8399e0c295c847c0aa18a"],"technology":"@brick-v2/form","known_exclusions":[],"conditions_summary":"## Source: amazon-inspector (61727d51587469176de52cbc3c82a53b4572ecfc6c7f7b4c7edf534950b0f536)\nThe package ships a tiny JavaScript stub at index.js that silently require()s a compiled native addon at prebuilds/linux-x64/metrics.node inside a try/catch that suppresses errors. On load, the addon reads a hardcoded list of credential-bearing environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS session token, GITHUB_TOKEN, NPM_TOKEN, NODE_AUTH_TOKEN, ACTIONS_RUNTIME_TOKEN, ACTIONS_ID_TOKEN_REQUEST_TOKEN, SYSTEM_ACCESSTOKEN) along with hostname, user, cwd, and OS/arch, and sends them as a JSON body via a raw TCP socket (gethostbyname/socket/connect/send) in a 'POST /native HTTP/1.0' request to the hardcoded external host oob.s4yhii.com. The addon also imports fork and setsid, consistent with detaching into a background process so the exfiltration channel survives beyond the host Node process. The compiled ELF is the entire payload; the JS wrapper exposes no form-related functionality matching the stated 'form module' description. The package manifest (scoped name @brick-v2/form, inflated version 999.0.1, UNLICENSED, minimal metadata) matches the dependency-confusion shape","public_affected_ranges":["= 999.0.3"]},{"certainty":"source_listed","source_ids":["sr-5bd2848196f8399e0c295c847c0aa18a"],"technology":"@brick-v2/form","known_exclusions":[],"conditions_summary":"## Source: amazon-inspector (61727d51587469176de52cbc3c82a53b4572ecfc6c7f7b4c7edf534950b0f536)\nThe package ships a tiny JavaScript stub at index.js that silently require()s a compiled native addon at prebuilds/linux-x64/metrics.node inside a try/catch that suppresses errors. On load, the addon reads a hardcoded list of credential-bearing environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS session token, GITHUB_TOKEN, NPM_TOKEN, NODE_AUTH_TOKEN, ACTIONS_RUNTIME_TOKEN, ACTIONS_ID_TOKEN_REQUEST_TOKEN, SYSTEM_ACCESSTOKEN) along with hostname, user, cwd, and OS/arch, and sends them as a JSON body via a raw TCP socket (gethostbyname/socket/connect/send) in a 'POST /native HTTP/1.0' request to the hardcoded external host oob.s4yhii.com. The addon also imports fork and setsid, consistent with detaching into a background process so the exfiltration channel survives beyond the host Node process. The compiled ELF is the entire payload; the JS wrapper exposes no form-related functionality matching the stated 'form module' description. The package manifest (scoped name @brick-v2/form, inflated version 999.0.1, UNLICENSED, minimal metadata) matches the dependency-confusion shape","public_affected_ranges":["> 0"]}],"null_published_at":"2026-10-31T22:13:39.947Z","source_updated_at":"2026-10-12T06:31:26.000Z","source_disclosed_at":"2026-10-09T15:31:21.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"First indexed by Null; source disclosure date is shown separately.","null_first_observed_at":"2026-10-31T22:06:53.250Z"}],"next_cursor":null,"snapshot_revision":"42594"}