netresearch/assetpicker-bundle
Symfony bundle that adds an asset picker form type and modal UI for selecting images or files from a configured asset source, making it easy to attach assets to entities through standard Symfony forms with a reusable picker widget.
to URL and cause your application server to fetch loopback, private-network, link-local addresses (including the cloud metadata endpoint 169.254.169.254) and internal DNS names. As PM, this is the decision that matters — if you expose this route to untrusted users, the previous version was an infrastructure-level risk, not a UI nit. Options: upgrade and keep the route, upgrade and gate the route behind auth, or stop importing the bundle's route and implement your own fetch. Treat "do we even need this route exposed?" as a product question, not just a patch ticket.assetpicker.proxy.http_client redefined with the allowList argument, symfony/http-client 8.1+). If your roadmap includes on-prem/S3-compatible internal endpoints, that configuration becomes a documented onboarding step and a support-burden line item — price it in.@CybotTM) is a positive signal for the vendor-risk scorecard. It also means your dependency policy should be able to consume such fixes quickly — i.e. you need to know which of your apps import this route before the next advisory, not after.gh attestation verify. This unlocks questions you can now answer for security review and enterprise customers — SBOM ingestion into your SCA tooling, artifact provenance checks in CI — that were previously "ask the vendor."main and release automation is now centralised in netresearch/.github. Small, but it tells you the project is standardising its pipeline; expect more automated releases and a lower chance of ad-hoc, unattested tags.Adopt when:
symfony/http-client 8.1+ — required if you need the internal-host allow list.Look elsewhere or defer when:
symfony/http-client 8.1 and depend on internal-host storage. Without the allow-list mechanism the upgrade path is friction, and the workaround is custom client wiring.For executives (one paragraph): We evaluated a small open-source PHP component for the "choose a file" step in our product. Its previous version had a serious security flaw — an attacker could use it to make our servers fetch internal addresses, including cloud credentials endpoints — so it was not shippable as-is. The new 2.0.1 release closes that flaw, and the project now publishes signed releases with software bills of materials and build provenance, which is the kind of evidence our security reviews and enterprise buyers increasingly ask for. Recommendation: adopt at 2.0.1+ behind authentication rather than building this ourselves, and treat the upgrade as a same-week action because the flaw is remotely triggerable.
For engineering leads: Upgrade to 2.0.1 before anything else; 2.0.0's proxy route forwarded to any supplied to URL, so it was a straightforward SSRF into loopback, RFC1918, link-local (169.254.169.254), and internal DNS. The fix gives the proxy its own client (assetpicker.proxy.http_client) wrapping http_client in Symfony's NoPrivateNetworkHttpClient and returns 403 on refused targets; our own http_client is untouched, so no collateral changes. The breaking bit: any storage on an internal host now needs an explicit allowList on a redefined assetpicker.proxy.http_client, which requires symfony/http-client 8.1+. Ask: (1) do we actually need to expose this route, and to whom; (2) can we land the 8.1 bump in the same release; (3) can we add gh attestation verify to our artifact intake now that releases are signed.
For security and procurement: The advisory is GHSA-fjm5-jqj9-h9j2, fixed by PR #9. Releases from 2.0.1 onward are produced by netresearch/.github's release-source-archive.yml and ship a source archive, SPDX and CycloneDX SBOMs, build provenance, and Cosign signatures; verification is a single documented command. Practically, this means the component can enter SBOM-driven dependency tracking and provenance checks — worth capturing in the vendor record, and worth flagging that the project's first attested release is also its first security release, so we should set a review checkpoint on the next two versions rather than assume the process is proven.
Framing caution: the flaw was in the bundle's own proxy route, not in a transitive dependency we already run, and it was found and fixed publicly within the project. That is a reasonable story to tell — a component that publishes advisories and fixes them fast is safer than one whose bugs go unreported — but don't let it bury the operational point: our exposure window is set by how fast we can inventory and patch apps that import this route.
How can I help you explore Laravel packages today?