@things-factory/integration-lmd@10.1.219
Module for managing last mile delivery partner integration
AI Security Review
scanned 10d ago · by lpm-firewall-aiThe Citylink shipment path forwards a stored Xero OAuth token to a hard-coded HTTP recipient without a destination-specific consent or validation guard. This supports a credential-exposure warning, while the source does not establish a separate concrete attack that would justify blocking publication.
Decision evidence
public snapshot- The Citylink client builds an OAuth authorization URL for Xero with accounting scopes, and the integration stores an access token on its last-mile account.
- A registered Citylink API action passes the saved account token and account identifier into the client.
- The client sends a bearer token and Xero tenant identifier to a fixed HTTP endpoint at 202.133.101.28.
- The registered shipment request posts to /requestShipment; the API wrapper invokes the platform action for the selected platform.
- The manifest lists build and migration scripts but no npm install lifecycle hook.
- The token transfer is reached through an invoked platform API action; the inspected source does not show install-time transmission or a separate collection path.
Source & flagged code
8 flaggedPackage source references dynamic require/import behavior.
dist-server/migrations/index.jsView on unpkg · L3Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist-server/controllers/citylink/platform-action.jsView on unpkgFindings
Affected versions and remediation
This report applies to @things-factory/integration-lmd@10.1.219.
See all versions of @things-factory/integration-lmd for other recorded verdicts.
- Review the evidence and your use of @things-factory/integration-lmd@10.1.219 before allowing it. Restrict the permissions described in this report.
- Choose an independently verified alternative or release. This report does not establish that other versions are safe.
Evidence last updated: .
Think this verdict is wrong? Dispute it on GitHub or read how reports are produced.