Security1 distinct publisher3 min readPublished
The probes read Langflow's secret key file and grep the process environment for OpenAI and AWS credentials, which puts an AI orchestration tool on the same scanning clock as the Rails file-read bug of the same week.
The Watch · Security desk

Compiled by The WatchSomething wrong?How this is made
The probe strings look like they were written by someone with the software open. LANGFLOW_SUPERUSER is the application's own admin credential, and /root/.cache/langflow/secret_key signs its tokens. OPENAI_API*, AWS_ACCESS* and AWS_SECRET* are the keys that get an attacker off the host and into a cloud tenant, while the checks on .ssh access and .bash_history size are triage for where to go next [6]. All of it lands as root, because CVE-2026-0768 executes attacker-supplied Python in the root context [2].
The arithmetic on the growth: 360 divided by 50 is 7.2, and that is a ceiling rather than a rate, because VulnCheck's early figure was stated as more than 50 [5][17]. The start of the window is dated to August 30, 2026. The endpoint is given only as "Monday" [5]. The 360 is also not broken out by CVE in VulnCheck's account, though the strings quoted alongside it are Langflow-specific [5][6].
The Rails half of the week is where the patch math gets awkward. CVE-2026-66066, CVSS 9.5, lets an unauthenticated attacker read arbitrary files and leak the Rails process environment, including secret_key_base, the master key, database passwords and cloud storage credentials [3]. Exploitation needs a crafted image upload and an app that uses libvips for Active Storage processing and accepts uploads from untrusted users [4]. VulnCheck says Active Storage always enables the libvips loaders that are unsafe for untrusted content [14]. It then tested a patched 8.1.3.1 server and found the fix blocks the libvips file read but does not neutralize the variation-key Marshal deserialization, so the RCE gadget still executes given a valid signature [15]. If the pre-patch read already yielded the signing key, the upgrade closes the door the attacker used to get the key, not the door the key opens.
The Langflow activity sits inside a longer pattern. VulnCheck counts 12 vulnerabilities exploited since 2025, with more than 15,000 successful attempts across CVE-2026-0769, CVE-2025-3248 and CVE-2026-5027 [8]. On its canaries, one crew used CVE-2026-5027 to drop a Python credential harvester, proxy agents and SimpleHelp for remote access [10]. Another used CVE-2025-3248 for an XMR miner, disabled auditd to create a forensic blind spot, exploited CVE-2026-0769 to drop .sysd, then scanned outward and moved on [11]. That is commodity operators cycling an exploit set, not a single actor's private bug.
Attribution, kept separate. VulnCheck says the Langflow source traffic comes primarily from Russia and has so far hit only its UK canaries [7]. For the Rails exploitation against canaries in Singapore, Israel and the UK [12], researcher Patrick Garrity said in a LinkedIn post that the traffic comes from a single IP address in France with command and control to a host in Israel [13]. One publisher, one post, one IP.
Most vulnerable Langflow hosts are in the US, Germany, Malaysia, Brazil and India [9]. An internet-reachable instance holding model and cloud keys is an application server with credentials in its environment, and the detection curve says it is being scanned like one [6][19].
Ranked by verification strength, evidence, and original report placement.
VulnCheck reported that threat actors are exploiting two critical flaws affecting Langflow and Ruby on Rails.
CVE-2026-0768 (CVSS 9.8) is a lack of proper validation of user-supplied input in Langflow that can be exploited to execute arbitrary Python code in the context of the root user.
CVE-2026-66066, also called KindaRails2Shell (CVSS 9.5), allows an unauthenticated attacker to read arbitrary files from the server and leak the Rails process environment and secrets including secret_key_base, the Rails master key, database passwords, cloud storage credentials and API tokens, ultimately leading to remote code execution.
CVE-2026-66066 is exploited by uploading a crafted image that abuses a discrepancy between Active Storage and libvips in how they read input files; successful exploitation requires the app to use libvips for Active Storage image processing and to accept image uploads from untrusted users.
VulnCheck said it recorded more than 50 detections within a few hours on August 30, 2026, a figure that had risen to 360 as of Monday; the account does not break the 360 out by CVE.
Caitlin Condon, vice president of threat research at VulnCheck, said adversaries appear to be conducting a mix of reconnaissance and credential harvesting: attacker requests query environment variables (LANGFLOW_SUPERUSER, OPENAI_API*, AWS_ACCESS*, AWS_SECRET*), read /root/.cache/langflow/secret_key, and check .ssh access and .bash_history size.
Distinct publishers with included, body-backed reporting in this cluster.
1 article · September 1, 2026
Follow any of these and your For You feed starts watching them — no settings page required.
security
Active Storage routed stranger-supplied uploads into libvips MATLAB and NIfTI loaders1 distinct publisher
security
Rapid7 carries CVE-2026-66066 from a Rails upload to Kernel#spawn1 distinct publisher
build
Answering one hardcoded address gives you root on 20+ Zbtlink router models1 distinct publisher
security
Sixteen Metasploit modules reduce this quarter's advisories to one-command checks1 distinct publisher
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
One sensor network, relayed once
Every quantity in this story — 360 detections, 7,100 exposed Rails instances, 15,000 successful attempts — comes out of VulnCheck's own canary fleet, and The Hacker News is the sole outlet carrying it. The CVSS scores and the libvips mechanism are the sort of detail an advisory would pin down, but no advisory is cited here, and the closest thing to a second voice, Patrick Garrity's note on the French source IP, arrives inside the same retelling rather than beside it.
Exploitation is real; the count is one aperture
What is being measured here is attacker behaviour rather than product uptake, and on that the observations are unusually concrete: named environment variables being grepped, a specific secret-key file read, a Python credential harvester and SimpleHelp landing on a honeypot, auditd switched off before .sysd appears. The ceiling is the sensor grid itself — every sighting is a canary in a handful of countries, so how far the activity extends beyond VulnCheck's own decoys is simply unknown.
Blunt headline over an understated finding
The 50-to-360 climb is the loudest figure and the least resolved: it is never split between the Langflow and Rails bugs, so the curve could belong to either, and the implied 7.2x is a ceiling because the starting point was 'more than 50'. Pulling the other way, the most alarming sentence in the piece — a patched 8.1.3.1 server still runs the gadget given a valid signature — sits in a block quote near the bottom. Modest overstatement of scale on top of a finding that deserved louder billing.
The canary fleet is the product
VulnCheck sells threat intelligence built on the sensor network these detections came from, and the closing line — attackers are turning toward AI development platforms — is precisely the thesis that makes such a network worth subscribing to. None of that makes the telemetry wrong, but nobody in this story has an interest in a smaller number, and The Hacker News contributes distribution rather than verification.
Coherent, uncorroborated
The mechanics hold together — Active Storage's default loaders, a signed variation key, Python evaluated as root — and the probe behaviour reads like genuine reconnaissance rather than a demo. But with one outlet, one vendor and one researcher's post relayed instead of read, nothing in this reporting would have caught an error before we repeated it.