CUTSIGNcutting for sign — daily OSINT threat read
AI-generated verdict card, published automatically by the pipeline on day one because the brief rated the story P1. Version 1, as of 2026-10-31; hype score 6 (below the usual publish bar: early read from few sources, revised as the story develops). Written by a model from the stored public sources and not reviewed by a person; re-issued in place when the evidence changes (the URL stays). The detection-coverage table below is checked automatically from public sources and re-checked daily. All cards

Citizen Lab: Discover-Tech targeted ads delivered Candiru spyware zero-click to Al Jazeera devices

Hunt + hardenP1confidence: highP1 +2deep read +13 publishers +1primary source +1actor named +1P1: card on day one (score below the publish bar; revised as the story develops)

Citizen Lab reports that an Israeli ad firm's targeted ad placements delivered Candiru (DevilsTongue) spyware with no click to at least 45 Al Jazeera devices in 2024-2025. Today, pull Citizen Lab's indicators, hunt proxy and DNS logs from high-risk staff devices for the ad-to-validation-to-C2 sequence, and consider ad-blocking for those users.

Triage: Delivery is confirmed by primary research, and it is zero-click through a channel any browsing device can receive [S1][S3]. Exposure for a financial enterprise depends on whether it has high-risk staff who could be selected as targets.

The core claim comes from Citizen Lab's primary research [S3] and is corroborated by two secondary outlets [S1][S2]. The provided text has no domains, hashes or exploit details, so hunts stay behavioural until the report's indicators are pulled.

What happened

Timeline

2024-2025At least 45 Al Jazeera devices compromised via targeted-ad delivery [S1]
2026-10-19Citizen Lab research and press coverage published [S3]

Detect

Ad-rendered requests to NOAS/getAd endpoints · Web proxy / secure web gateway

index=* (url="*getAd*" OR url="*noas*") | stats count min(_time) as first max(_time) as last values(url) as urls by src, user, dest | sort - count
FROM logs-* | WHERE url.original LIKE "*getAd*" OR url.original LIKE "*noas*" | STATS count = COUNT(*), first = MIN(@timestamp), last = MAX(@timestamp), urls = VALUES(url.original) BY source.ip, user.name, destination.ip | SORT count DESC

A hit means: A device rendered an ad that called a getAd/NOAS-style endpoint. This is a lead, not proof: the exact URL pattern and domains are not in the provided text, so match dest against Citizen Lab's published Discover-Tech indicators before escalating [S1][S3].

Unsigned DLL loaded into browser process · EDR / Sysmon image-load events (Windows)

index=* EventCode=7 Signed=false (Image="*\\chrome.exe" OR Image="*\\msedge.exe" OR Image="*\\firefox.exe") | stats count values(ImageLoaded) as dlls by host, Image, Hashes | sort count
FROM logs-* | WHERE event.code == "7" AND dll.code_signature.signed == false AND (process.executable LIKE "*\\chrome.exe" OR process.executable LIKE "*\\msedge.exe" OR process.executable LIKE "*\\firefox.exe") | STATS count = COUNT(*), dlls = VALUES(dll.path) BY host.name, process.executable, dll.hash.sha256 | SORT count ASC

A hit means: An unsigned module loaded into a browser on Windows. This is low fidelity. Candiru dropped a DLL on a Windows host [S2], but the provided text does not say which process loaded it or where it was written. Compare hashes against Citizen Lab's published hashes, if any.

Verify

Scope

Affected

Only if

Not affected if

None stated by the sources.

Enumerate

Contain

Eradicate

Recover

Re-enter the loop when

Debrief

Detection coverage — checked automatically

CategorySourceStatus
VendorImpacted vendor / CERT advisorypublished — primary source among the thread's sources: https://citizenlab.ca/research/how-discover-tech-turned-targeted-ads-into-a-pipeline-for-spyware/
GovernmentCISA KEVnot checkable — no CVE: the catalog is keyed by CVE
EDR / endpoint VMCrowdStrike blognothing found — no post names it among the feed's 10 newest items
EDR / endpoint VMMicrosoft Security blognothing found — no post names it among the feed's 10 newest items
EDR / endpoint VMSentinelOne blognothing found — no post names it among the feed's 10 newest items
EDR / endpoint VMSentinelOne Labsnothing found — no post names it among the feed's 10 newest items
WAF / edgeAkamai blognothing found — no post names it among the feed's 1183 newest items
WAF / edgeCloudflare WAF managed-ruleset changelognothing found — no post names it among the feed's 139 newest items
Cloud / containerWiz blognothing found — no post names it among the feed's 717 newest items
IDS / researchCisco Talos blognothing found — no post names it among the feed's 15 newest items
Detection contentElastic detection rulesnothing found — no rule file names DevilsTongue / AdFection / Candiru
Detection contentElastic Security Labsnothing found — no post names it among the feed's 102 newest items
Detection contentSigmaHQ rulespublished — 4 files name DevilsTongue / Candiru: rules-emerging-threats/2021/TA/SOURGUM/proc_creation_win_apt_sourgrum.yml, rules-emerging-threats/2021/Exploits/CVE-2021-33771/registry_set_cve_2021_31979_cve_2021_33771_exploits.yml, rules-emerging-threats/2021/Exploits/CVE-2021-33771/file_event_win_cve_2021_31979_cve_2021_33771_exploits.yml, deprecated/windows/driver_load_win_vuln_hw_driver.yml
Detection contentSplunk ESCUnothing found — no rule file names DevilsTongue / AdFection / Candiru
MSSP / IR firmsArctic Wolf blognothing found — no post names it among the feed's 10 newest items
MSSP / IR firmsHuntress blognothing found — no post names it among the feed's 754 newest items
MSSP / IR firmsRapid7 blognothing found — no post names it among the feed's 20 newest items
MSSP / IR firmsSophos threat researchnothing found — no post names it among the feed's 15 newest items
ResearchUnit 42nothing found — no post names it among the feed's 15 newest items

Checked automatically 2026-11-10 05:36Z from public sources: 2 published, 16 nothing found, 1 not machine-checkable, 0 failed. "Nothing found" means the public source answered and had nothing, as of that moment; a feed covers only its newest posts. Re-checked daily.

What a person would still look up (4)
Secure web gateway / DNS securityWhether Discover-Tech and Candiru infrastructure from the Citizen Lab report is categorised or blockable, and whether ad-script requests are logged with full URL.
EDRWhether image-load and signature telemetry for browser processes is collected, and whether published Candiru DLL hashes can be swept retrospectively.
Mobile threat defenceWhether high-risk staff mobile devices are enrolled and send network telemetry. The sources do not state mobile targeting.
Browser managementWhether ad-blocking and advertising-ID controls can be enforced for a high-risk user group.

Exposure queries — generated automatically

No CVE in this campaign: nothing an internet scanner keys on. Scope by product in your own tool.

Scope every query in your own tool, never in a shared document: Shodan `net:<your_ranges>`, `org:"<your_org>"` or `hostname:<your_domain>` (or a Shodan Monitor network alert, which applies the scope for you); Censys `host.ip: <your_ranges>` or `host.dns.names: <your_domain>`. Then compare the banner version with the affected range. Generated automatically 2026-11-10 05:36Z from the CVE ids and NVD's CPE configurations, each Shodan query counted against Shodan itself; re-built daily with the coverage check.

Open questions

Sources

Public OSINT only. AI-generated by the pipeline; structure follows the DAIR model from Dynamic Incident Response (Joshua Wright). Published automatically; a dismissed draft unpublishes it.

One mail per new card, after you confirm by link; an unsubscribe link in every mail. The address is used for nothing else.