@things-factory/integration-lmd@10.1.245
Module for managing last mile delivery partner integration
AI Security Review
scanned 2d ago · by lpm-firewall-aiThe source identifies the token flow as Xero OAuth, then sends that bearer token and tenant ID to a hard-coded Citylink host over unencrypted HTTP. This is a concrete transfer of service credentials to a different host without evidence of consent for that disclosure.
Decision evidence
public snapshot- Citylink builds an OAuth authorization URL for Xero with accounting scopes.
- The Citylink action takes accessToken and accountId from a LastMileDelivery record and passes them to the client.
- The client sends the bearer token and Xero tenant ID to the hard-coded Citylink endpoint over HTTP.
- The Citylink action is registered as a platform operation and forwards requests through that client.
- The package describes itself as a last-mile delivery partner integration, and the endpoint is named CitylinkService.
- The transfer occurs when the Citylink platform action is invoked; the reviewed manifest has no install lifecycle scripts.
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.245.
See all versions of @things-factory/integration-lmd for other recorded verdicts.
- Avoid installing @things-factory/integration-lmd@10.1.245. Remove it from direct dependencies and check your lockfile for transitive copies.
- Choose an independently verified alternative or release. This report does not establish that other versions are safe.
- If this version ran, investigate the affected machine and build environment. Rotate credentials it could access and rebuild from a trusted environment.
Evidence last updated: .
Think this verdict is wrong? Dispute it on GitHub or read how reports are produced.