{"items":[{"id":"NVI-00008742","kind":"supply_chain_event","title":"Malicious code in @ppa-web-components/ppa-searchform (npm)","revision":1,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-xv6m-ch98-25c4"],"plain_summary":"GitHub lists this malware advisory for @ppa-web-components/ppa-searchform, @ppa-web-components/ppa-searchform, @ppa-web-components/ppa-searchform, @ppa-web-components/ppa-searchform, @ppa-web-components/ppa-searchform. 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-ca615297c3f6a53f0cbd3352f31f8e72"],"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-ca615297c3f6a53f0cbd3352f31f8e72","url":"https://github.com/advisories/GHSA-xv6m-ch98-25c4","basis":"vendor_advisory","notes":"GitHub Advisory Database; CC-BY-4.0. Each advisory links its original attribution. Null normalizes fields.","title":"GHSA-xv6m-ch98-25c4","publisher":"GitHub Advisory Database","observed_at":"2026-10-31T21:56:59.340Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-ca615297c3f6a53f0cbd3352f31f8e72"],"technology":"@ppa-web-components/ppa-searchform","known_exclusions":[],"conditions_summary":"## Source: amazon-inspector (c9b929e77e53b5f528d874024d0cf8cfe4a0e34845796964600b0e1511e6a49c)\nThe package ships a `beacon.cjs` that is wired to run both via the `postinstall` lifecycle script and from top-level `index.js` on `require()`. On execution it collects host identifiers (hostname, install path, current working directory, Node.js version) and POSTs them to a hardcoded bare-IPv4 endpoint over plaintext HTTP at http://185.158.107.175:8787/_ah/dc. The destination is not a publisher-owned domain. The package's `index.js` exports a `Proxy` that returns no-op functions for every property access, so the module provides no real functionality — its only effect on install or import is the beacon callback. The combination of a non-functional shim under an organisation-shaped scope with a reconnaissance beacon fired at install and import time is the fingerprint of a dependency-confusion / namesquat probe that reports successful resolution and build inside a victim's environment.\n\n---\n\nCredit: OpenSSF ([source](https://github.com/ossf/malicious-packages/blob/b711d7c76f98b5044512e8c851547e8a05b2f959/osv/malicious/npm/@ppa-web-components/ppa-","public_affected_ranges":["= 0.0.1"]},{"certainty":"source_listed","source_ids":["sr-ca615297c3f6a53f0cbd3352f31f8e72"],"technology":"@ppa-web-components/ppa-searchform","known_exclusions":[],"conditions_summary":"## Source: amazon-inspector (c9b929e77e53b5f528d874024d0cf8cfe4a0e34845796964600b0e1511e6a49c)\nThe package ships a `beacon.cjs` that is wired to run both via the `postinstall` lifecycle script and from top-level `index.js` on `require()`. On execution it collects host identifiers (hostname, install path, current working directory, Node.js version) and POSTs them to a hardcoded bare-IPv4 endpoint over plaintext HTTP at http://185.158.107.175:8787/_ah/dc. The destination is not a publisher-owned domain. The package's `index.js` exports a `Proxy` that returns no-op functions for every property access, so the module provides no real functionality — its only effect on install or import is the beacon callback. The combination of a non-functional shim under an organisation-shaped scope with a reconnaissance beacon fired at install and import time is the fingerprint of a dependency-confusion / namesquat probe that reports successful resolution and build inside a victim's environment.\n\n---\n\nCredit: OpenSSF ([source](https://github.com/ossf/malicious-packages/blob/b711d7c76f98b5044512e8c851547e8a05b2f959/osv/malicious/npm/@ppa-web-components/ppa-","public_affected_ranges":["= 2.0.1"]},{"certainty":"source_listed","source_ids":["sr-ca615297c3f6a53f0cbd3352f31f8e72"],"technology":"@ppa-web-components/ppa-searchform","known_exclusions":[],"conditions_summary":"## Source: amazon-inspector (c9b929e77e53b5f528d874024d0cf8cfe4a0e34845796964600b0e1511e6a49c)\nThe package ships a `beacon.cjs` that is wired to run both via the `postinstall` lifecycle script and from top-level `index.js` on `require()`. On execution it collects host identifiers (hostname, install path, current working directory, Node.js version) and POSTs them to a hardcoded bare-IPv4 endpoint over plaintext HTTP at http://185.158.107.175:8787/_ah/dc. The destination is not a publisher-owned domain. The package's `index.js` exports a `Proxy` that returns no-op functions for every property access, so the module provides no real functionality — its only effect on install or import is the beacon callback. The combination of a non-functional shim under an organisation-shaped scope with a reconnaissance beacon fired at install and import time is the fingerprint of a dependency-confusion / namesquat probe that reports successful resolution and build inside a victim's environment.\n\n---\n\nCredit: OpenSSF ([source](https://github.com/ossf/malicious-packages/blob/b711d7c76f98b5044512e8c851547e8a05b2f959/osv/malicious/npm/@ppa-web-components/ppa-","public_affected_ranges":["= 3.0.0"]},{"certainty":"source_listed","source_ids":["sr-ca615297c3f6a53f0cbd3352f31f8e72"],"technology":"@ppa-web-components/ppa-searchform","known_exclusions":[],"conditions_summary":"## Source: amazon-inspector (c9b929e77e53b5f528d874024d0cf8cfe4a0e34845796964600b0e1511e6a49c)\nThe package ships a `beacon.cjs` that is wired to run both via the `postinstall` lifecycle script and from top-level `index.js` on `require()`. On execution it collects host identifiers (hostname, install path, current working directory, Node.js version) and POSTs them to a hardcoded bare-IPv4 endpoint over plaintext HTTP at http://185.158.107.175:8787/_ah/dc. The destination is not a publisher-owned domain. The package's `index.js` exports a `Proxy` that returns no-op functions for every property access, so the module provides no real functionality — its only effect on install or import is the beacon callback. The combination of a non-functional shim under an organisation-shaped scope with a reconnaissance beacon fired at install and import time is the fingerprint of a dependency-confusion / namesquat probe that reports successful resolution and build inside a victim's environment.\n\n---\n\nCredit: OpenSSF ([source](https://github.com/ossf/malicious-packages/blob/b711d7c76f98b5044512e8c851547e8a05b2f959/osv/malicious/npm/@ppa-web-components/ppa-","public_affected_ranges":["= 99.0.1"]},{"certainty":"source_listed","source_ids":["sr-ca615297c3f6a53f0cbd3352f31f8e72"],"technology":"@ppa-web-components/ppa-searchform","known_exclusions":[],"conditions_summary":"## Source: amazon-inspector (c9b929e77e53b5f528d874024d0cf8cfe4a0e34845796964600b0e1511e6a49c)\nThe package ships a `beacon.cjs` that is wired to run both via the `postinstall` lifecycle script and from top-level `index.js` on `require()`. On execution it collects host identifiers (hostname, install path, current working directory, Node.js version) and POSTs them to a hardcoded bare-IPv4 endpoint over plaintext HTTP at http://185.158.107.175:8787/_ah/dc. The destination is not a publisher-owned domain. The package's `index.js` exports a `Proxy` that returns no-op functions for every property access, so the module provides no real functionality — its only effect on install or import is the beacon callback. The combination of a non-functional shim under an organisation-shaped scope with a reconnaissance beacon fired at install and import time is the fingerprint of a dependency-confusion / namesquat probe that reports successful resolution and build inside a victim's environment.\n\n---\n\nCredit: OpenSSF ([source](https://github.com/ossf/malicious-packages/blob/b711d7c76f98b5044512e8c851547e8a05b2f959/osv/malicious/npm/@ppa-web-components/ppa-","public_affected_ranges":["= 2.0.0"]},{"certainty":"source_listed","source_ids":["sr-ca615297c3f6a53f0cbd3352f31f8e72"],"technology":"@ppa-web-components/ppa-searchform","known_exclusions":[],"conditions_summary":"## Source: amazon-inspector (c9b929e77e53b5f528d874024d0cf8cfe4a0e34845796964600b0e1511e6a49c)\nThe package ships a `beacon.cjs` that is wired to run both via the `postinstall` lifecycle script and from top-level `index.js` on `require()`. On execution it collects host identifiers (hostname, install path, current working directory, Node.js version) and POSTs them to a hardcoded bare-IPv4 endpoint over plaintext HTTP at http://185.158.107.175:8787/_ah/dc. The destination is not a publisher-owned domain. The package's `index.js` exports a `Proxy` that returns no-op functions for every property access, so the module provides no real functionality — its only effect on install or import is the beacon callback. The combination of a non-functional shim under an organisation-shaped scope with a reconnaissance beacon fired at install and import time is the fingerprint of a dependency-confusion / namesquat probe that reports successful resolution and build inside a victim's environment.\n\n---\n\nCredit: OpenSSF ([source](https://github.com/ossf/malicious-packages/blob/b711d7c76f98b5044512e8c851547e8a05b2f959/osv/malicious/npm/@ppa-web-components/ppa-","public_affected_ranges":["= 1.0.1"]},{"certainty":"source_listed","source_ids":["sr-ca615297c3f6a53f0cbd3352f31f8e72"],"technology":"@ppa-web-components/ppa-searchform","known_exclusions":[],"conditions_summary":"## Source: amazon-inspector (c9b929e77e53b5f528d874024d0cf8cfe4a0e34845796964600b0e1511e6a49c)\nThe package ships a `beacon.cjs` that is wired to run both via the `postinstall` lifecycle script and from top-level `index.js` on `require()`. On execution it collects host identifiers (hostname, install path, current working directory, Node.js version) and POSTs them to a hardcoded bare-IPv4 endpoint over plaintext HTTP at http://185.158.107.175:8787/_ah/dc. The destination is not a publisher-owned domain. The package's `index.js` exports a `Proxy` that returns no-op functions for every property access, so the module provides no real functionality — its only effect on install or import is the beacon callback. The combination of a non-functional shim under an organisation-shaped scope with a reconnaissance beacon fired at install and import time is the fingerprint of a dependency-confusion / namesquat probe that reports successful resolution and build inside a victim's environment.\n\n---\n\nCredit: OpenSSF ([source](https://github.com/ossf/malicious-packages/blob/b711d7c76f98b5044512e8c851547e8a05b2f959/osv/malicious/npm/@ppa-web-components/ppa-","public_affected_ranges":["= 1.0.0"]},{"certainty":"source_listed","source_ids":["sr-ca615297c3f6a53f0cbd3352f31f8e72"],"technology":"@ppa-web-components/ppa-searchform","known_exclusions":[],"conditions_summary":"## Source: amazon-inspector (c9b929e77e53b5f528d874024d0cf8cfe4a0e34845796964600b0e1511e6a49c)\nThe package ships a `beacon.cjs` that is wired to run both via the `postinstall` lifecycle script and from top-level `index.js` on `require()`. On execution it collects host identifiers (hostname, install path, current working directory, Node.js version) and POSTs them to a hardcoded bare-IPv4 endpoint over plaintext HTTP at http://185.158.107.175:8787/_ah/dc. The destination is not a publisher-owned domain. The package's `index.js` exports a `Proxy` that returns no-op functions for every property access, so the module provides no real functionality — its only effect on install or import is the beacon callback. The combination of a non-functional shim under an organisation-shaped scope with a reconnaissance beacon fired at install and import time is the fingerprint of a dependency-confusion / namesquat probe that reports successful resolution and build inside a victim's environment.\n\n---\n\nCredit: OpenSSF ([source](https://github.com/ossf/malicious-packages/blob/b711d7c76f98b5044512e8c851547e8a05b2f959/osv/malicious/npm/@ppa-web-components/ppa-","public_affected_ranges":["= 1.1.0"]}],"null_published_at":"2026-10-31T22:13:27.114Z","source_updated_at":"2026-10-26T03:31:41.000Z","source_disclosed_at":"2026-10-25T15:31:37.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-31T21:56:59.340Z"}],"next_cursor":null,"snapshot_revision":"42594"}