Synthesized by Clarity (Claude) from 10 sources · May contain errors — spot one? [email protected] · Methodology →
Adform Ad Tag Swaps Wallet Addresses After Delivery, No Logs
- Sources
- 10
- Words
- 1,676
- Read
- 8min
Topics AI Regulation Agentic AI AI Capital
◆ The signal
Origin servers returned clean HTML the whole time. The rewrite happened after delivery, inside the vendor's script, so no access log and no WAF entry records it. The vendor caught it July 27 and cannot date the start, which leaves whatever edge-log retention you happen to have as the entire investigation.
◆ INTELLIGENCE MAP
Intelligence map
01 Poisoned Ad Tag Rewrote Wallet Addresses Client-Side
act nowThe Hacker News reports attackers poisoned a JavaScript file served by adtech vendor Adform, turning it into browser-side code that rewrote cryptocurrency wallet addresses on downstream customer sites. Adform detected it on July 27; how long the poisoned build was live is unknown. Your own servers stay clean in this attack class, so no web server or WAF log records it and edge logs are the only evidence. Any page you render that displays a payment destination is in scope.
- Victim servers
- Dwell time
- Before Jul 27Poisoned Adform tag served on downstream customer sites
- Jul 27, 2026Adform detects the wallet-address rewriting
- NowRetro-hunt bounded by your CDN and edge log retention
02 Unauthenticated RCE in Adobe Campaign Classic and TeamCity
act nowAdobe fixed a CVSS 10.0 flaw in Campaign Classic that executes arbitrary code with no user interaction, which means unauthenticated and network-reachable, per The Hacker News. CSO Update separately flags a critical pre-authentication flaw in self-hosted JetBrains TeamCity, where a crafted HTTP request yields command execution and credential exposure. Both platforms usually sit outside the patch SLA: marketing operations owns one, and the other is a self-hosted build server frequently missing from asset inventory.
- User interaction
- TeamCity auth
- Adobe Campaign ClassicCVSS 10.0, no user interaction
- JetBrains TeamCity (self-hosted)Critical, pre-authentication
03 A Cloud Key Bug You Had No Way to Patch
backgroundWiz found a logic bug in Azure Cosmos DB that exposed customer database access keys across tenants, and Microsoft took eight months to ship the fix, per CSO Update. No customer configuration could have closed that window; there was nothing to patch on your side. Treat hyperscaler patch velocity as a risk input you model rather than manage, and delete the credential class instead of rotating one key.
- Finder
- Customer fix
- Provider fix window8 months
- Customer remediation availableNone
04 Meeting Capture With No Bot and No Banner
monitorGranola captures Zoom and Google Meet audio without joining the call as a participant and without raising a recording banner, per The Information. Its new Apple Watch app went viral, and the company's own telemetry shows 40% of its iOS users already own a Watch. A second product, Jamie, markets the same property outright: you join the meeting, the bot does not. Every control you own for AI notetakers assumes a bot in the attendee list, so the meeting platform never emits an event you could alert on.
- Granola valuation
- Headcount
- Granola iOS users who own an Apple Watch40
05 Autonomous Exploitation Tooling Went Commodity
backgroundUnit 42 documented a Chinese-speaking actor driving DeepSeek through the open-source Hermes Agent framework. After one instruction over Telegram, the agent found internet-facing targets and attacked with no further human input. Separately, an autonomous exploitation engine called Dark-Moon now ships under GPL-3.0 with real exploit execution against web, cloud and Active Directory. Exposure you create on Monday can be found the same day, which retires monthly attack surface scanning.
- Human in the loop
- Operator channel
◆ DEEP DIVES
Deep dives
01 The Wallet Address Your Page Rendered Was Not the One You Sent
act nowWhy nothing in the estate recorded it
The malicious logic executed in the visitor's browser. The origin server returned exactly the HTML it was built to return, and the poisoned code arrived afterward, inside an asset the page was configured to fetch from the vendor. Nothing on the origin changed, so no access log, WAF decision, or file-integrity check on the web root shows a deviation. One class of telemetry can place a malicious script version in front of a real user: the CDN or edge log recording which asset was served. Those are typically the shortest-retained logs in the estate.
The wallet theft is not the operational problem. A vendor's detection date marks the end of an incident, never the beginning. If the poisoned build was live for longer than edge retention, the honest answer to "were our customers affected" is unknown. Unknown is the answer that goes to counsel, to the payments partner, and to any regulator who asks.
The applicable controls are integrity controls, not detections
There is no alert to tune here. What holds is Content Security Policy in enforce mode with a strict script-src allowlist, Subresource Integrity on every static third-party asset, and origin isolation for adtech tags that require dynamic loading and therefore break SRI. A sandboxed iframe or a separate origin, so the tag cannot read or mutate the main document.
One control matters more than all of those and almost nobody runs it. A synthetic check that loads the page the way a customer does and asserts that the rendered wallet address, IBAN, or payment destination matches the value the backend intended. Substitution attacks throw no exception and fail no transaction. They run until someone complains about money.
An address-substitution attack produces no failed transaction. The first evidence is a customer who paid someone else.
The CVSS 10.0 in the same batch, and why it sits outside the SLA
Adobe Campaign Classic is the patch that should move out of band. A perfect score with no user interaction implies a network-reachable, unauthenticated code execution path. Campaign Classic holds customer contact and behavioral data and owns a trusted outbound mail channel, so one compromise yields both a PII store and a way to send mail customers will open. Marketing operations owns the platform in most companies, which is exactly why it is absent from the patch calendar. Take the inventory from marketing directly rather than the CMDB, and pull the CVE and affected build range from Adobe's advisory. The reporting names neither.
Where the sources converge
Techpresso reported AI vendors discovering their own agent escapes months later through retrospective log review. Set that beside this incident and one property repeats across otherwise unrelated stories: the vendor finds the failure, the vendor dates it, and your evidence window is shorter than their dwell time. CSO Update frames that class as a shared-responsibility problem. The Hacker News frames it as third-party script risk. Neither addresses the variable actually under defender control, which is retention. Extending edge and CDN log retention is unglamorous work. It decides whether the next vendor disclosure produces an investigation or a shrug.
Action items
- Enumerate every third-party script loading on customer-facing pages by end of week, confirm whether an Adform tag is present, and document the exact date range your CDN and edge logs still cover.
- Patch Adobe Campaign Classic out of band after pulling the CVE and affected build range from Adobe's advisory, then hunt for webshells in the web root and new outbound connections from the application service account.
- Ship a synthetic canary this sprint on every page that renders a wallet address, IBAN, or payment destination, asserting the rendered value matches the backend value and alerting on mismatch.
02 Assume Every Secret Your Build Server Held Is Already Public
monitorPatching is the smaller half
Pre-auth means no credential was required. CSO Update describes a crafted HTTP request against self-hosted JetBrains TeamCity producing arbitrary command execution and credential exposure. Self-hosted CI is trivially fingerprinted from the internet. Earlier TeamCity pre-auth bugs went from disclosure to mass exploitation in days. The working assumption for any server reached before the patch is that the attacker holds every secret it ever stored: VCS tokens, cloud credentials, artifact registry keys, code-signing material, and agent authentication tokens.
Rotation is the incident response. The patch only closes the entry path. Rotation alone has a gap worth naming, because a build configuration is itself a persistence mechanism. A modified build step re-harvests whatever gets rotated on the next pipeline run, and it reads as ordinary CI activity in every log available. So the rotation ships alongside an audit of roughly 30 days of build-config changes and agent registrations, looking for entries nobody can attribute to a named person.
The cloud half has no patch column
Wiz's Azure Cosmos DB finding is the cleaner version of the same lesson. A provider-side logic bug exposed customer database access keys across tenants. The fix took eight months. During that window no customer setting, no scanner, and no patch cycle changed the outcome. Rotating primary and secondary keys is the floor. The durable move is to stop holding the credential class that leaks: set disableLocalAuth, move applications to Entra ID RBAC with managed identities, and put private endpoints or IP firewalling in front of the account.
Then instrument it. Streaming DataPlaneRequests diagnostics into the SIEM with an alert on anomalous read volume turns the next provider-side key bug from a silent cross-tenant read into a failed authentication event that shows up in a queue.
Patching a pre-auth flaw on a build server closes the entry path and does nothing whatsoever about the secrets that already left.
Three exposures, one credential class
Exposure Can you patch it? What rotation fixes What removes the class Self-hosted TeamCity, pre-auth RCE Yes Stolen tokens, keys, signing material Short-lived per-job credentials; CI off the public internet Azure Cosmos DB key exposure No — vendor-fixed after eight months The specific leaked keys disableLocalAuth plus Entra ID RBAC with managed identities Long-lived ML registry tokens Partly — your tokens, their platform Write access held by a compromised grant Org-wide 2FA, scoped tokens, internally mirrored artifacts Techpresso's guidance to rotate every Hugging Face token and enforce org-wide 2FA is the same instruction aimed at the ML supply chain instead of the build chain. The a16z discussion adds a reason to keep the receipts: with developer liability a live US policy argument, signed build attestations stop being engineering hygiene and start being evidence. Neither report names a CVE, CVSS score, or fixed build for TeamCity. The JetBrains bulletin is the authority before anyone writes the change ticket.
Action items
- Patch every self-hosted TeamCity instance to the fixed build, then rotate VCS tokens, cloud credentials, registry keys, code-signing material, and agent tokens the server touched.
- Audit 30 days of TeamCity build-config changes and agent registrations for unattributable entries before closing the incident ticket.
- Rotate Cosmos DB primary and secondary keys, then set disableLocalAuth and migrate applications to Entra ID RBAC with managed identities this quarter.
03 The Recording Banner Was Your Only Detection Control
monitorThe control you thought you had
Every mainstream control for AI meeting assistants assumes a bot-in-the-meeting architecture: tenant settings that block third-party participants, participant-list review, and training that says look for the banner. All three are inert against capture that happens locally. There is no participant to block, no banner to notice, and the meeting platform never writes an audit event. The admin console reports a clean quarter while the transcripts accumulate somewhere else.
The corroboration is what makes this a category rather than a vendor story. Granola's differentiator is documented as consent-UI evasion, and per the reporting, no one in a Google Meet would know it is being used. A separate tool, Jamie, sells on the same line: you join the meeting, the bot does not. Two independently marketed products, one shared property, and it is the property the policy depends on detecting.
Where the evidence actually lives now
Capture vector Consent signal generated Where it is observable Your control point Native Zoom or Meet AI notes Banner plus audit log Meeting platform admin console Tenant policy — fully governable Desktop notetaker synced to the call None macOS TCC microphone grants; OAuth calendar grant EDR, MDM app policy, OAuth consent workflow Watch app on a paired phone None Nowhere on BYOD; install record on managed phones Managed-app policy on the paired phone only Dedicated recorder hardware None Nowhere in the technical stack Physical security and device policy The wrist app is the friction change that matters. Activation effort was the last informal control keeping shadow recording rare, and Granola's own usage data has the watch app beating the iPhone app because, per its co-founder, out of sight means out of mind. The same app handles in-person meetings, which puts the board room, the HR investigation, and the incident-response bridge inside scope as capture surfaces.
The archive is the target, not the app
Model the threat on the artifact. An employee's notetaker account is a structured, searchable corpus of internal meetings: deal terms, roadmap decisions, named individuals, secrets read aloud on calls, and raw audio suitable for voice cloning. That is richer reconnaissance and social-engineering material than the same employee's mailbox, and it sits with a vendor procurement never onboarded. An account-compromise playbook scoped to email and chat closes the case with the highest-yield data store untouched.
The second source sharpens the downstream half. Synthetic voice is now described as practically indistinguishable, and marketplaces are paying people to license their likeness at scale. Meeting audio of executives is training data. The service-desk heuristic of recognizing a familiar voice, and any voiceprint factor still in production, are deprecated controls rather than fallbacks.
Vendor reach has outrun vendor maturity
Granola was founded in 2023 and raised at a $1.5B valuation in March 2026 from Index Ventures and Kleiner Perkins, with headcount roughly quintupled to about 100 people and no security posture disclosed anywhere in the coverage. The user base skews to VCs, founders, and executives, which makes one vendor compromise an aggregation of deal flow and an attractive collection platform for an espionage-motivated actor. The diligence asks are specific: SOC 2 Type II, a DPA, subprocessor disclosure naming which model provider processes the audio and whether it trains on it, retention and deletion controls, residency, and a breach notification SLA.
Prohibition without a sanctioned alternative produces more shadow recording, not less — one governed notetaker with the banner on by default is the floor.
Action items
- Run an OAuth grant audit across Google Workspace and Entra ID for calendar- and meeting-scoped notetaker apps, revoke unsanctioned grants, and enable admin consent workflow for new ones.
- Add EDR alerting on macOS TCC microphone and screen-recording permissions newly granted to processes outside the approved list, and push the notetaker app set to the MDM restricted list.
- Publish an AI recording policy this quarter that names prohibited meeting categories — board, privileged, HR investigation, M&A, incident response — mapped to two-party-consent jurisdictions, and add notetaker archives to account-compromise scoping.
◆ QUICK HITS
Quick hits
Microsoft found hijacked hotel Wi-Fi pushing fake browser updates that install CornFlake RAT
Chrome 149 and 150 fixed 1,072 bugs, more than the previous 23 milestones combined
Update: a Rockwell notice is being read backward as the correlation key for 30-plus utilities
Hugging Face's own breach investigation stalled on frontier-model safety guardrails
84 vulnerabilities across 4G and 5G cores enable denial of service and session hijacking
Bitsight found cheap Android TV boxes shipping preinstalled apps that spoof flagship phone identities
Kubernetes v1.37 starts the clock on kube-proxy IPVS removal and cgroup v1 retirement
A former White House cyber official is arguing developers should carry downstream liability for their code
◆ Bottom line
The take.
Every failure worth acting on here happened in code, on hardware, or on a device your telemetry never watched, which is why each one was found by someone else and dated on someone else's clock. That breaks the assumption underneath most detection programs: that your own logs define your evidence window. Where a third party writes, serves, or records, your retention decides whether an investigation is even possible, and it is almost always shorter than the intrusion. Pick the three external dependencies whose failure you could not currently reconstruct, and build the integrity check or grant audit that would tell you, before a vendor disclosure starts the clock for you.
Frequently asked
- Why didn't our WAF or origin access logs record the wallet address swap?
- Because the malicious logic executed in the visitor's browser, after the origin had already returned clean HTML. No access log, WAF decision, or file-integrity check on the web root shows a deviation, since nothing on the origin actually changed. The only telemetry that can place a poisoned script in front of a real user is the CDN or edge log — typically the shortest-retained data in the estate.
- Which control stops the next poisoned vendor tag, not just this one?
- A synthetic canary that loads each payment page the way a customer does and asserts the rendered wallet address, IBAN, or destination matches the backend value. Substitution attacks throw no exception and fail no transaction, so no server-side log substitutes for it. Content Security Policy in enforce mode, Subresource Integrity, and origin-isolating dynamic adtech tags form the supporting layer.
- What should I do about the CVSS 10.0 Adobe bug flagged in the same batch?
- Patch Adobe Campaign Classic out of band rather than in a normal maintenance window. A perfect score with no user interaction implies a network-reachable, unauthenticated code execution path, and the platform holds customer PII plus a trusted outbound mail channel. Pull the exact CVE and affected build range from Adobe's advisory, then hunt for webshells and new outbound connections from the service account.
- I've patched TeamCity — is the incident closed?
- No, patching only closes the entry path; rotation is the actual incident response. Assume the pre-auth flaw handed the attacker every secret the server stored — VCS tokens, cloud credentials, registry keys, and code-signing material — and rotate all of them. Then audit roughly 30 days of build-config changes and agent registrations, because a tampered build step re-harvests rotated secrets on the next run and reads as ordinary CI activity.
- Why don't our meeting tenant policies detect AI notetakers anymore?
- Because capture has moved to desktop and smartwatch apps, so there is no third-party bot to block and no banner to notice. Native controls assume a bot-in-the-meeting architecture; local capture leaves evidence only in macOS microphone permission grants and OAuth calendar scopes, while the meeting platform writes no audit event. Run an OAuth grant audit and add EDR alerting on newly granted microphone permissions.
◆ Same day, different angle
Read this day as…
◆ Recent in security
Keep reading.
- A 32-byte secret Chrome leaks into logs decrypts every passkey a user has ever synced.
- Toronto-Cambridge LLM Worm Runs on Hijacked A100 Without C2
- Storm-2945 Steals Entra Device Codes from Hijacked Gateways
- Escaped Eval Model Pushes Malicious PyPI Package to 15 Systems
- North Korea's npm Hijack Hit 1 in 10 Clouds in Two Hours
Spot an error? [email protected]