<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <title>Data Today: Cyber security</title>
  <subtitle>Field notes for teams tracking critical CVEs and major incidents.</subtitle>
  <link href="https://data-today.net/cybersecurity/feed.xml" rel="self" />
  <link href="https://data-today.net/" />
  <updated>2026-06-20T00:00:00Z</updated>
  <id>https://data-today.net/</id>
  <author>
    <name>Data Today Newsroom</name>
  </author>
  <entry>
    <title>Splunk Enterprise flaw turns logs into attack surface</title>
    <link href="https://data-today.net/cybersecurity/cybersecurity-splunk-enterprise-flaw/" />
    <updated>2026-06-20T00:00:00Z</updated>
    <id>https://data-today.net/cybersecurity/cybersecurity-splunk-enterprise-flaw/</id>
    <content type="html">&lt;p&gt;The dangerous part of a logging stack is that everybody trusts it. Splunk often sits near privileged telemetry, sensitive logs, security workflows, and the operators who can see across the estate. The Splunk Enterprise flaw CVE-2026-20253 breaks that trust in the worst possible place: an unauthenticated PostgreSQL sidecar endpoint that can be reached by a network adjacent attacker and, in public research, chained into remote code execution.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;If you run affected Splunk Enterprise 10.x, treat this as an active incident response item, not a routine patch ticket.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Splunk published &lt;a href=&quot;https://advisory.splunk.com/advisories/SVD-2026-0603&quot;&gt;SVD-2026-0603 on June 10, 2026&lt;/a&gt;, giving CVE-2026-20253 a CVSS 9.8 Critical score and identifying affected versions as Splunk Enterprise 10.2.0 to 10.2.3 and 10.0.0 to 10.0.6. On June 18, Splunk updated the same advisory to say its PSIRT had become aware of limited exploitation in June 2026. CISA then added the bug to its Known Exploited Vulnerabilities catalog and, according to &lt;a href=&quot;https://www.bleepingcomputer.com/news/security/cisa-splunk-enterprise-flaw-actively-exploited-patch-by-sunday/&quot;&gt;BleepingComputer&#39;s report on the CISA order&lt;/a&gt;, gave federal civilian agencies until Sunday, June 21, 2026 to remediate.&lt;/p&gt;
&lt;p&gt;That date matters for everyone outside government too. CISA deadlines are not magic, but they are a clean signal that the exploitability debate is over. Attackers are already using this class of bug. Your job is to remove the landing zone before your SIEM becomes the quietest compromise in the building.&lt;/p&gt;
&lt;h2 id=&quot;what-actually-broke-in-splunk-enterprise&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/cybersecurity/cybersecurity-splunk-enterprise-flaw/#what-actually-broke-in-splunk-enterprise&quot;&gt;&lt;span&gt;What actually broke in Splunk Enterprise?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The flaw is simple enough to be uncomfortable. Splunk says the PostgreSQL sidecar service endpoint lacks authentication controls, which lets any network reachable user invoke file operations without credentials. The affected trains are narrow, but common enough to hurt: Splunk Enterprise 10.0.0 through 10.0.6 and 10.2.0 through 10.2.3. Splunk Enterprise 10.4.0, 10.2.4, and 10.0.7 are fixed, while Splunk Enterprise 9.4 and 9.3 are listed as unaffected in &lt;a href=&quot;https://advisory.splunk.com/advisories/SVD-2026-0603&quot;&gt;Splunk&#39;s product status table&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The chart below shows the operational shape of the exposure. The ugly number is &lt;strong&gt;7 vulnerable 10.0 patch releases&lt;/strong&gt;, because that is the kind of long tail that survives in production after a platform upgrade.&lt;/p&gt;
&lt;figure class=&quot;figure&quot;&gt;&lt;img src=&quot;https://data-today.net/posts/cybersecurity-splunk-enterprise-flaw-fig-affected-splunk-versions.png&quot; alt=&quot;Splunk Enterprise flaw CVE-2026-20253 affects 7 patch releases in the 10.0 train and 4 patch releases in the 10.2 train, while 9.3, 9.4, and 10.4 show 0 vulnerable patch releases in Splunk advisory SVD-2026-0603.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;figcaption&gt;Affected release counts from Splunk advisory SVD-2026-0603: Splunk Enterprise 10.0 has 7 vulnerable patch releases, 10.2 has 4, and 9.3, 9.4, and 10.4 are listed as not affected. Source: Splunk advisory SVD-2026-0603. Data Today benchmark.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;The initial vendor description says arbitrary file creation and truncation. That sounds like a file integrity problem until you remember where Splunk lives. A file primitive on a SIEM host can become credential theft, alert tampering, persistence, or code execution depending on placement, permissions, and app behavior.&lt;/p&gt;
&lt;p&gt;That is exactly where public research went. watchTowr Labs published a &lt;a href=&quot;https://labs.watchtowr.com/why-use-app-level-auth-when-every-database-has-auth-splunk-enterprise-cve-2026-20253-pre-auth-rce/&quot;&gt;technical writeup on June 12, 2026&lt;/a&gt; showing how requests to Splunk Web could be proxied to the local PostgreSQL sidecar API through paths such as &lt;code&gt;/en-US/splunkd/__raw/v1/postgres/recovery/backup&lt;/code&gt;. The researchers then walked the chain from arbitrary file operations to controlled file write and remote code execution as the Splunk user.&lt;/p&gt;
&lt;p&gt;Do not overfit on one proof of concept. The operator takeaway is broader: a management or helper service that was expected to be internal became reachable through the product&#39;s own web surface. Once an attacker can make the logging system perform trusted local operations, your perimeter assumptions around that helper service stop helping.&lt;/p&gt;
&lt;h2 id=&quot;why-is-this-worse-because-splunk-is-the-logging-system&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/cybersecurity/cybersecurity-splunk-enterprise-flaw/#why-is-this-worse-because-splunk-is-the-logging-system&quot;&gt;&lt;span&gt;Why is this worse because Splunk is the logging system?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A compromised Splunk box is a messy incident because it can blur the evidence trail while sitting inside your response workflow. That does not mean every exploit automatically deletes your logs or steals every secret. It means the host has a trust profile that most web apps do not have.&lt;/p&gt;
&lt;p&gt;For a production team, the exposure splits into four practical risks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Control plane risk:&lt;/strong&gt; Splunk often connects to forwarders, deployment servers, apps, alert actions, identity providers, and ticketing workflows.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data concentration risk:&lt;/strong&gt; Logs may contain tokens, session identifiers, internal hostnames, request bodies, stack traces, and customer identifiers.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Detection risk:&lt;/strong&gt; An attacker on the SIEM can test whether your alerts fire, then change behavior or persistence accordingly.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Recovery risk:&lt;/strong&gt; If responders rely on Splunk during the investigation, a tainted instance can waste hours with partial or misleading evidence.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is why the Sunday deadline is rational. CISA&#39;s June 21 date creates an 11 day window from Splunk&#39;s June 10 disclosure to required remediation for federal agencies. In a normal change calendar, 11 days feels tight. For a pre-authentication Critical bug with public technical detail and confirmed exploitation, 11 days is generous.&lt;/p&gt;
&lt;p&gt;There is a business consequence hiding in the patch note. Splunk&#39;s workaround is to disable the PostgreSQL sidecar service, but Splunk warns that doing so breaks Edge Processor, OpAmp, and SPL2 data pipelines on affected instances. That makes this a real operations decision, not a checkbox. If those pipelines carry production telemetry, you need an owner who can say what drops, what degrades, and what gets replayed.&lt;/p&gt;
&lt;p&gt;Security tools keep teaching the same lesson. Your SIEM, VPN, CI runner, MDM, and package registry deserve the same patch urgency as internet facing apps because attackers target the systems that operators exempt from normal suspicion. We made a similar point in our guide to &lt;a href=&quot;https://data-today.net/cybersecurity/cybersecurity-fortinet-reset-plan/&quot;&gt;building a Fortinet credential reset plan&lt;/a&gt;: fixing the appliance is only half the work when the appliance has been trusted for too long.&lt;/p&gt;
&lt;h2 id=&quot;how-should-operators-triage-cve-2026-20253-today&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/cybersecurity/cybersecurity-splunk-enterprise-flaw/#how-should-operators-triage-cve-2026-20253-today&quot;&gt;&lt;span&gt;How should operators triage CVE-2026-20253 today?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Start with asset truth, not dashboard vibes. If your inventory cannot answer which Splunk Enterprise versions are running by environment, owner, exposure, and feature usage, this CVE is the audit you did not ask for.&lt;/p&gt;
&lt;p&gt;Here is the fastest sane order of operations:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Find every Splunk Enterprise 10.x instance.&lt;/strong&gt; Include lab, DR, old migration hosts, cloud VMs, and contractor managed boxes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Classify versions.&lt;/strong&gt; Instances on 10.0.0 to 10.0.6 or 10.2.0 to 10.2.3 are in the affected set.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Patch first where reachable.&lt;/strong&gt; Upgrade to 10.0.7, 10.2.4, 10.4.0, or later, based on your train and compatibility plan.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;If you cannot patch, disable the sidecar only after dependency review.&lt;/strong&gt; Splunk&#39;s mitigation requires adding a &lt;code&gt;[postgres]&lt;/code&gt; stanza with &lt;code&gt;disabled = true&lt;/code&gt; in &lt;code&gt;$SPLUNK_HOME/etc/system/local/server.conf&lt;/code&gt;, then restarting Splunk Enterprise.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hunt before you declare victory.&lt;/strong&gt; Check for unexpected access to PostgreSQL recovery endpoints, suspicious backup or restore activity, new or modified files under Splunk app paths, and unusual outbound connections from Splunk hosts.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The dependency review should be quick and explicit. Ask three owners three questions: does this instance run Edge Processor, does it use OpAmp, and does any SPL2 data pipeline depend on this box? If all three answers are no, disabling the PostgreSQL sidecar is a reasonable temporary brake while the patch moves. If any answer is yes, the workaround could cut telemetry you need during the incident window.&lt;/p&gt;
&lt;p&gt;Network controls still help, but they should not become the whole response. Restrict Splunk Web and management surfaces to administrative networks, remove accidental internet exposure, and block unneeded east west access. Then patch anyway. The exploit path described by watchTowr depends on network reachability, and compromised internal workstations count as network reachability in real incidents.&lt;/p&gt;
&lt;h2 id=&quot;what-should-you-check-for-after-patching&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/cybersecurity/cybersecurity-splunk-enterprise-flaw/#what-should-you-check-for-after-patching&quot;&gt;&lt;span&gt;What should you check for after patching?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Patching closes the known door. It does not prove nobody walked through it between June 10 and your maintenance window.&lt;/p&gt;
&lt;p&gt;Your post patch review should cover three buckets. First, review Splunk application directories for recent modifications, especially scripts under app &lt;code&gt;bin&lt;/code&gt; directories and any file changes owned by the Splunk service account. Second, inspect Splunk web and internal logs for access to &lt;code&gt;/v1/postgres/recovery/backup&lt;/code&gt;, &lt;code&gt;/v1/postgres/recovery/restore&lt;/code&gt;, and proxied &lt;code&gt;splunkd/__raw&lt;/code&gt; paths. Third, look at host telemetry for unusual child processes, outbound connections, and file writes from Splunk processes around the disclosure window.&lt;/p&gt;
&lt;p&gt;If you find a vulnerable instance that was internet exposed, raise the bar. Pull a forensic image or at least preserve logs before restarting services repeatedly. Rotate credentials that lived in Splunk configs, alert actions, custom apps, scripted inputs, and integrations. Review tokens and webhooks that Splunk could invoke. A SIEM compromise can become a SaaS compromise if alerting integrations carry powerful credentials.&lt;/p&gt;
&lt;p&gt;Also check whether your backup strategy includes clean Splunk configuration state. Restoring tainted apps or scripts into a freshly patched instance is a classic way to keep the attacker on payroll. The boring recovery question is useful: can you rebuild Splunk from known good configuration, or are you only backing up the same mutable host that might be compromised?&lt;/p&gt;
&lt;h2 id=&quot;what-changes-after-this-patch-window-closes&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/cybersecurity/cybersecurity-splunk-enterprise-flaw/#what-changes-after-this-patch-window-closes&quot;&gt;&lt;span&gt;What changes after this patch window closes?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The useful work after Sunday is architectural. Do not let a CVE like this disappear into the patch report.&lt;/p&gt;
&lt;p&gt;Give Splunk and similar platforms a stricter operating model:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Put SIEM admin surfaces behind an access path that logs identity, device posture, and source network.&lt;/li&gt;
&lt;li&gt;Treat helper services and sidecars as attack surface even when they bind to localhost.&lt;/li&gt;
&lt;li&gt;Monitor the monitoring stack with independent telemetry, such as EDR and host based file integrity rules.&lt;/li&gt;
&lt;li&gt;Keep service account permissions boring, narrow, and documented.&lt;/li&gt;
&lt;li&gt;Practice a rebuild of at least one non production Splunk node from source controlled configuration.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The sidecar detail is the part builders should remember. Modern platforms keep adding helper processes, embedded databases, local APIs, and background workers. Each one is a contract that says, in effect, the main app will never expose me in a dangerous way. CVE-2026-20253 shows how brittle that contract can be.&lt;/p&gt;
&lt;p&gt;If you own production systems, your immediate bet is simple: patch or disable the PostgreSQL sidecar before attackers make the decision for you. Your longer bet is stricter segmentation around the tools you use to see everything else. Observability without containment is just a better map for the person who gets in.&lt;/p&gt;
&lt;h2 id=&quot;the-logging-box-is-part-of-the-blast-radius&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/cybersecurity/cybersecurity-splunk-enterprise-flaw/#the-logging-box-is-part-of-the-blast-radius&quot;&gt;&lt;span&gt;The logging box is part of the blast radius&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Security teams like to call Splunk a source of truth. During exploitation, it is another Linux or Windows host with privileged relationships and a large memory of your environment.&lt;/p&gt;
&lt;p&gt;Give it the respect you give a domain controller. Then give it the patch window you give an actively exploited edge device.&lt;/p&gt;
&lt;h2 id=&quot;sources&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/cybersecurity/cybersecurity-splunk-enterprise-flaw/#sources&quot;&gt;&lt;span&gt;Sources&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://advisory.splunk.com/advisories/SVD-2026-0603&quot;&gt;Splunk: SVD-2026-0603&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://labs.watchtowr.com/why-use-app-level-auth-when-every-database-has-auth-splunk-enterprise-cve-2026-20253-pre-auth-rce/&quot;&gt;watchTowr Labs: Why Use App-Level Auth When Every Database Has Auth?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.cisa.gov/known-exploited-vulnerabilities-catalog&quot;&gt;CISA: Known Exploited Vulnerabilities Catalog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.bleepingcomputer.com/news/security/cisa-splunk-enterprise-flaw-actively-exploited-patch-by-sunday/&quot;&gt;BleepingComputer: CISA says Splunk Enterprise flaw is actively exploited&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://nvd.nist.gov/vuln/detail/CVE-2026-20253&quot;&gt;NVD: CVE-2026-20253&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>Mastra npm supply chain attack hits AI build rooms</title>
    <link href="https://data-today.net/cybersecurity/cybersecurity-mastra-npm-supply-chain/" />
    <updated>2026-06-20T00:00:00Z</updated>
    <id>https://data-today.net/cybersecurity/cybersecurity-mastra-npm-supply-chain/</id>
    <content type="html">&lt;p&gt;A package install is now enough to make your AI app leak like a badly scoped admin token. The Mastra npm supply chain attack matters because it hit the machinery builders use before code reaches production: dependency resolution, CI runners, developer laptops, and the secrets sitting around them.&lt;/p&gt;
&lt;p&gt;Microsoft says the campaign affected &lt;strong&gt;more than 140 packages&lt;/strong&gt; across the &lt;code&gt;mastra&lt;/code&gt; and &lt;code&gt;@mastra&lt;/code&gt; scopes, and on June 19, 2026, the company attributed the activity with high confidence to Sapphire Sleet, a North Korean state actor also known in public reporting as BlueNoroff. &lt;a href=&quot;https://www.microsoft.com/en-us/security/blog/2026/06/17/postinstall-payload-inside-mastra-npm-supply-chain-compromise/&quot;&gt;Microsoft Threat Intelligence said&lt;/a&gt; the attackers took over the &lt;code&gt;ehindero&lt;/code&gt; npm maintainer account, injected a malicious dependency called &lt;code&gt;easy-day-js&lt;/code&gt;, and used npm install behavior to run a postinstall payload.&lt;/p&gt;
&lt;p&gt;That should change your incident response posture. If your team installed affected Mastra packages during the exposure window, this is a build pipeline and secret exposure incident, not a dependency hygiene chore. The same lesson sits underneath our Fortinet guide on &lt;a href=&quot;https://data-today.net/cybersecurity/cybersecurity-fortinet-reset-plan/&quot;&gt;why credential exposure needs a reset plan&lt;/a&gt;: once attackers can touch the place where secrets live, cleanup without rotation is theater.&lt;/p&gt;
&lt;h2 id=&quot;what-actually-happened-inside-the-mastra-npm-packages&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/cybersecurity/cybersecurity-mastra-npm-supply-chain/#what-actually-happened-inside-the-mastra-npm-packages&quot;&gt;&lt;span&gt;What actually happened inside the Mastra npm packages?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The attacker used one compromised npm maintainer account to publish poisoned Mastra package versions that added &lt;code&gt;easy-day-js@^1.11.21&lt;/code&gt; as a new dependency. &lt;a href=&quot;https://www.microsoft.com/en-us/security/blog/2026/06/17/postinstall-payload-inside-mastra-npm-supply-chain-compromise/&quot;&gt;Microsoft reported&lt;/a&gt; that every package published by the compromised &lt;code&gt;ehindero&lt;/code&gt; account contained the injected dependency, while packages last published through GitHub Actions CI/CD or other legitimate maintainers were unaffected.&lt;/p&gt;
&lt;p&gt;The trick was small enough to hide in a noisy dependency diff. Microsoft observed that &lt;code&gt;mastra@1.13.0&lt;/code&gt; had been published through GitHub Actions OpenID Connect, while &lt;code&gt;mastra@1.13.1&lt;/code&gt; was manually published by &lt;code&gt;ehindero&lt;/code&gt; using a Tutamail address. &lt;a href=&quot;https://www.microsoft.com/en-us/security/blog/2026/06/17/postinstall-payload-inside-mastra-npm-supply-chain-compromise/&quot;&gt;The same Microsoft analysis&lt;/a&gt; says the only package change between those two versions was the addition of &lt;code&gt;easy-day-js@^1.11.21&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The malicious dependency impersonated &lt;code&gt;dayjs&lt;/code&gt;, the legitimate date library. Microsoft’s comparison says the real &lt;code&gt;dayjs&lt;/code&gt; package had &lt;strong&gt;57,251,792 weekly downloads&lt;/strong&gt;, while &lt;code&gt;easy-day-js&lt;/code&gt; was newly created and had only two versions, both published in June 2026. That gap matters because the name was close enough for a human skim, while the registry metadata screamed that something was off.&lt;/p&gt;
&lt;p&gt;The staged delivery pattern made the compromise more dangerous. &lt;a href=&quot;https://www.microsoft.com/en-us/security/blog/2026/06/17/postinstall-payload-inside-mastra-npm-supply-chain-compromise/&quot;&gt;Microsoft’s timeline&lt;/a&gt; says &lt;code&gt;easy-day-js@1.11.21&lt;/code&gt; was published at 07:05 UTC on June 16, 2026 as clean bait, &lt;code&gt;easy-day-js@1.11.22&lt;/code&gt; was published at 01:01 UTC on June 17 with the postinstall payload, and &lt;code&gt;mastra@1.13.1&lt;/code&gt; plus more than 140 other &lt;code&gt;@mastra&lt;/code&gt; packages followed at 01:20 UTC.&lt;/p&gt;
&lt;p&gt;That timing is the whole move. A package manifest that says &lt;code&gt;^1.11.21&lt;/code&gt; can resolve to &lt;code&gt;1.11.22&lt;/code&gt;, so a fresh install can pick up the weaponized version even though the injected line names the earlier version range. JFrog’s independent analysis reached the same conclusion and found that fresh installs resolving &lt;code&gt;easy-day-js@^1.11.21&lt;/code&gt; selected the payload bearing &lt;code&gt;1.11.22&lt;/code&gt; release. &lt;a href=&quot;https://research.jfrog.com/post/easy-day-js/&quot;&gt;JFrog Security Research wrote&lt;/a&gt; that the affected Mastra code was largely untouched and that the malicious behavior moved one dependency lower.&lt;/p&gt;
&lt;p&gt;The chart below shows the key operator numbers: Microsoft reported more than 140 affected packages, a 4,572 byte first stage dropper, a roughly 41 KB second stage Node.js tasking client, 166 wallet browser extension IDs checked, and 7 high level attack phases.&lt;/p&gt;
&lt;figure class=&quot;figure&quot;&gt;&lt;img src=&quot;https://data-today.net/posts/cybersecurity-mastra-npm-supply-chain-fig-incident-counts.png&quot; alt=&quot;Mastra npm supply chain attack chart showing more than 140 affected packages, 4,572 byte dropper, roughly 41 KB second stage payload, 166 wallet extension IDs checked, and 7 attack phases.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;figcaption&gt;Mastra compromise scale signals: more than 140 affected packages, a 4,572 byte dropper, a roughly 41 KB second stage payload, 166 wallet extension IDs checked, and 7 attack phases. Source: Microsoft Threat Intelligence. Data Today benchmark.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;These are not vanity metrics. They describe where to hunt. If you only check application imports, you miss the install hook. If you only scan the package tarball, you may miss a second stage fetched at runtime. If you only rotate production secrets, you may leave developer tokens and CI credentials exposed.&lt;/p&gt;
&lt;h2 id=&quot;why-does-this-hit-ai-app-builders-harder-than-a-normal-npm-scare&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/cybersecurity/cybersecurity-mastra-npm-supply-chain/#why-does-this-hit-ai-app-builders-harder-than-a-normal-npm-scare&quot;&gt;&lt;span&gt;Why does this hit AI app builders harder than a normal npm scare?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mastra is used in the AI agent and workflow ecosystem, which means affected environments are unusually likely to contain valuable service credentials. Microsoft said any developer workstation or CI/CD pipeline that ran &lt;code&gt;npm install&lt;/code&gt; or &lt;code&gt;npm update&lt;/code&gt; after the compromised versions were published was potentially exposed, regardless of whether the package was imported in application code. &lt;a href=&quot;https://www.microsoft.com/en-us/security/blog/2026/06/17/postinstall-payload-inside-mastra-npm-supply-chain-compromise/&quot;&gt;That warning&lt;/a&gt; points directly at LLM API keys, cloud credentials, build tokens, npm publish rights, and downstream software integrity.&lt;/p&gt;
&lt;p&gt;AI build environments tend to be credential dense. A modern agent service can hold provider keys for OpenAI, Anthropic, Google, vector database credentials, GitHub tokens, observability keys, database URLs, and deployment secrets. One laptop with a permissive &lt;code&gt;.env&lt;/code&gt; file can be more useful to an attacker than a single production pod with tight workload identity.&lt;/p&gt;
&lt;p&gt;The payload was built for that kind of host. Microsoft said the postinstall hook launched an obfuscated 4,572 byte dropper, disabled TLS certificate verification, contacted attacker controlled C2 infrastructure, downloaded a second stage payload, and ran it as a detached hidden process. &lt;a href=&quot;https://www.microsoft.com/en-us/security/blog/2026/06/17/postinstall-payload-inside-mastra-npm-supply-chain-compromise/&quot;&gt;Microsoft’s payload analysis&lt;/a&gt; also says the second stage installed persistence across Windows, macOS, and Linux.&lt;/p&gt;
&lt;p&gt;The persistence paths read like a developer workstation bingo card. Microsoft documented a Windows Registry Run key, a macOS LaunchAgent, and a Linux systemd user service, all using names designed to blend into Node.js or NVM related directories. The article says the dropped implant used a misspelled &lt;code&gt;protocal.cjs&lt;/code&gt; file name and Node themed paths such as &lt;code&gt;NodePackages&lt;/code&gt; or &lt;code&gt;nvmconf&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The wallet targeting was explicit. &lt;a href=&quot;https://www.microsoft.com/en-us/security/blog/2026/06/17/postinstall-payload-inside-mastra-npm-supply-chain-compromise/&quot;&gt;Microsoft found&lt;/a&gt; a hardcoded list of 166 cryptocurrency wallet browser extension IDs, including MetaMask, Phantom, Coinbase Wallet, Binance Wallet, and TronLink, matched across Chrome, Edge, and Brave profiles.&lt;/p&gt;
&lt;p&gt;That crypto focus fits the actor. Microsoft says Sapphire Sleet has been active since at least March 2020 and primarily targets finance, cryptocurrency, venture capital, and blockchain organizations. &lt;a href=&quot;https://www.microsoft.com/en-us/security/blog/2026/06/17/postinstall-payload-inside-mastra-npm-supply-chain-compromise/&quot;&gt;Microsoft’s actor profile in the Mastra report&lt;/a&gt; says the group’s primary motivation is stealing cryptocurrency wallets and technology tied to cryptocurrency trading and blockchain platforms.&lt;/p&gt;
&lt;p&gt;The campaign also connects to a broader npm pattern. On March 31, 2026, Microsoft identified two malicious Axios versions, &lt;code&gt;1.14.1&lt;/code&gt; and &lt;code&gt;0.30.4&lt;/code&gt;, that used a fake dependency to fetch a second stage RAT from Sapphire Sleet infrastructure. &lt;a href=&quot;https://www.microsoft.com/en-us/security/blog/2026/04/01/mitigating-the-axios-npm-supply-chain-compromise/&quot;&gt;Microsoft’s Axios writeup&lt;/a&gt; said Axios had more than 70 million weekly downloads and that affected users should rotate secrets immediately.&lt;/p&gt;
&lt;p&gt;Here is the operator read: AI dependencies are becoming a path into the build system, and the build system is becoming a path into the business. If an attacker steals your LLM key, they can burn budget. If they steal your GitHub token, they can alter code. If they steal a cloud key from CI, they can reach data and deploy infrastructure. If they steal an npm token, they can turn you into the next distribution layer.&lt;/p&gt;
&lt;h2 id=&quot;what-should-you-do-in-the-first-24-hours-if-mastra-touched-your-builds&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/cybersecurity/cybersecurity-mastra-npm-supply-chain/#what-should-you-do-in-the-first-24-hours-if-mastra-touched-your-builds&quot;&gt;&lt;span&gt;What should you do in the first 24 hours if Mastra touched your builds?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Start with exposure, then move to containment. Microsoft says the compromised packages have been removed and the attacker’s publish access to the &lt;code&gt;@mastra&lt;/code&gt; scope has been revoked, but that does not clean already exposed machines or runners. &lt;a href=&quot;https://www.microsoft.com/en-us/security/blog/2026/06/17/postinstall-payload-inside-mastra-npm-supply-chain-compromise/&quot;&gt;Microsoft’s mitigation guidance&lt;/a&gt; tells teams to review dependency trees, search for &lt;code&gt;easy-day-js&lt;/code&gt;, pin known good versions, use &lt;code&gt;--ignore-scripts&lt;/code&gt;, rotate exposed credentials, and block the C2 IP addresses &lt;code&gt;23.254.164.92&lt;/code&gt; and &lt;code&gt;23.254.164.123&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Run the boring searches first. Boring is how you win before lunch.&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;npm&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;ls&lt;/span&gt; easy-day-js
&lt;span class=&quot;token function&quot;&gt;find&lt;/span&gt; &lt;span class=&quot;token builtin class-name&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-name&lt;/span&gt; package-lock.json &lt;span class=&quot;token parameter variable&quot;&gt;-o&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-name&lt;/span&gt; npm-shrinkwrap.json &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;xargs&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-n&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;easy-day-js&quot;&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-R&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;@mastra&#92;|easy-day-js&quot;&lt;/span&gt; ~/.npm &lt;span class=&quot;token operator&quot;&gt;&lt;span class=&quot;token file-descriptor important&quot;&gt;2&lt;/span&gt;&gt;&lt;/span&gt;/dev/null&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then check endpoints and runners for host indicators. Microsoft lists &lt;code&gt;$TMPDIR/.pkg_history&lt;/code&gt;, &lt;code&gt;$TMPDIR/.pkg_logs&lt;/code&gt;, unexpected &lt;code&gt;.js&lt;/code&gt; files in home or temp directories, the &lt;code&gt;protocal.cjs&lt;/code&gt; implant, the &lt;code&gt;teams.onweblive.org&lt;/code&gt; post compromise delivery domain, and the &lt;code&gt;maskasd.com&lt;/code&gt; beacon domain as indicators. &lt;a href=&quot;https://www.microsoft.com/en-us/security/blog/2026/06/17/postinstall-payload-inside-mastra-npm-supply-chain-compromise/&quot;&gt;The Microsoft IOC table&lt;/a&gt; also includes SHA-256 hashes for &lt;code&gt;setup.cjs&lt;/code&gt;, &lt;code&gt;easy-day-js-1.11.22.tgz&lt;/code&gt;, and &lt;code&gt;mastra-1.13.1.tgz&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Treat any positive hit as credential compromise. Rotate LLM provider keys, GitHub tokens, npm tokens, cloud access keys, database passwords, package registry credentials, CI secrets, and any wallet or signing material reachable from that host. If the host is a long lived CI runner, rebuild it from a clean image instead of trying to disinfect it in place.&lt;/p&gt;
&lt;p&gt;Your response checklist should be short and strict:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Freeze dependency updates for affected repos until you have a clean lockfile and a known good Mastra version.&lt;/li&gt;
&lt;li&gt;Search every repo, developer workstation, CI cache, container build context, and artifact store for &lt;code&gt;easy-day-js&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Rebuild runners and workstations that executed the compromised install, especially if they held production deploy rights.&lt;/li&gt;
&lt;li&gt;Rotate every secret accessible to those hosts, even if logs show no obvious exfiltration.&lt;/li&gt;
&lt;li&gt;Add egress detections for &lt;code&gt;23.254.164.92&lt;/code&gt;, &lt;code&gt;23.254.164.123&lt;/code&gt;, &lt;code&gt;teams.onweblive.org&lt;/code&gt;, and &lt;code&gt;maskasd.com&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Add process detections for Node.js running &lt;code&gt;setup.cjs&lt;/code&gt;, &lt;code&gt;easy-day-js&lt;/code&gt;, hidden PowerShell, and unexpected Node processes from temp paths.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Do not wait for a CVE. Corgea’s incident note lists the Mastra compromise as having &lt;strong&gt;no CVE assigned&lt;/strong&gt;, which is normal for many registry account takeovers and malicious package publications. &lt;a href=&quot;https://corgea.com/research/mastra-npm-easy-day-js-supply-chain-attack-june-2026&quot;&gt;Corgea’s breakdown&lt;/a&gt; frames the affected surface as compromised &lt;code&gt;@mastra/*&lt;/code&gt; packages, top level &lt;code&gt;mastra&lt;/code&gt; and &lt;code&gt;create-mastra&lt;/code&gt;, developer workstations, and CI runners.&lt;/p&gt;
&lt;h2 id=&quot;which-build-controls-should-stay-after-the-fire-drill&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/cybersecurity/cybersecurity-mastra-npm-supply-chain/#which-build-controls-should-stay-after-the-fire-drill&quot;&gt;&lt;span&gt;Which build controls should stay after the fire drill?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The strongest long term control is to reduce automatic code execution during install. GitHub says npm v12 is estimated for July 2026 and will turn several install behaviors into explicit opt ins, including dependency &lt;code&gt;preinstall&lt;/code&gt;, &lt;code&gt;install&lt;/code&gt;, and &lt;code&gt;postinstall&lt;/code&gt; scripts. &lt;a href=&quot;https://github.blog/changelog/2026-06-09-upcoming-breaking-changes-for-npm-v12/&quot;&gt;GitHub’s npm v12 changelog&lt;/a&gt; says &lt;code&gt;allowScripts&lt;/code&gt; will default to off, Git dependencies will require &lt;code&gt;--allow-git&lt;/code&gt;, and remote URL dependencies will require &lt;code&gt;--allow-remote&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;You do not need to wait for v12 to adopt the posture. GitHub says npm &lt;code&gt;11.16.0&lt;/code&gt; or newer already shows warnings, and teams can run &lt;code&gt;npm approve-scripts --allow-scripts-pending&lt;/code&gt; before approving trusted packages. &lt;a href=&quot;https://github.blog/changelog/2026-06-09-upcoming-breaking-changes-for-npm-v12/&quot;&gt;The same GitHub guidance&lt;/a&gt; says the resulting allowlist is written to &lt;code&gt;package.json&lt;/code&gt; and should be committed.&lt;/p&gt;
&lt;p&gt;For production AI systems, make install scripts guilty until proven needed. That means &lt;code&gt;npm ci --ignore-scripts&lt;/code&gt; in CI wherever possible, explicit allowlists where native builds make scripts unavoidable, and separate build jobs for dependencies that genuinely need compilation. Convenience should lose when a package manager wants to run code from the internet.&lt;/p&gt;
&lt;p&gt;Pinning also matters, with nuance. Microsoft recommends pinning known good package versions where possible and says &lt;code&gt;mastra&lt;/code&gt; version &lt;code&gt;1.13.0&lt;/code&gt; and earlier, plus &lt;code&gt;@mastra/core&lt;/code&gt; version &lt;code&gt;1.42.0&lt;/code&gt; and earlier, were unaffected. &lt;a href=&quot;https://www.microsoft.com/en-us/security/blog/2026/06/17/postinstall-payload-inside-mastra-npm-supply-chain-compromise/&quot;&gt;Microsoft’s mitigation section&lt;/a&gt; also recommends removing &lt;code&gt;easy-day-js&lt;/code&gt; from lockfiles and checking CI/CD logs for suspicious postinstall execution and C2 connections.&lt;/p&gt;
&lt;p&gt;The business decision is where to spend friction. Put it on dependency publish and install paths, not on engineers trying to ship features at 6 p.m. A practical policy looks like this: trusted publishing for packages you own, ephemeral runners for sensitive builds, no long lived cloud keys on laptops, strict egress from CI, dependency script allowlists, and emergency rotation runbooks that include LLM keys.&lt;/p&gt;
&lt;p&gt;This incident also argues for provenance alerts. Microsoft caught a suspicious shift from GitHub Actions OIDC publishing to a manual publish from an anonymous email address. That is a great detection pattern for any package your company depends on heavily: alert when a package version loses trusted publisher metadata, changes publisher identity, adds a new dependency, or gains a lifecycle script.&lt;/p&gt;
&lt;h2 id=&quot;the-build-room-is-part-of-production-now&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/cybersecurity/cybersecurity-mastra-npm-supply-chain/#the-build-room-is-part-of-production-now&quot;&gt;&lt;span&gt;The build room is part of production now&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The Mastra compromise is the kind of incident that punishes teams that draw a neat line between development and production. A stolen CI token can become a production incident. A stolen LLM key can become a cost incident. A stolen npm token can become a customer incident.&lt;/p&gt;
&lt;p&gt;Your AI stack is only as clean as the machine that installed it.&lt;/p&gt;
&lt;h2 id=&quot;sources&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/cybersecurity/cybersecurity-mastra-npm-supply-chain/#sources&quot;&gt;&lt;span&gt;Sources&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/security/blog/2026/06/17/postinstall-payload-inside-mastra-npm-supply-chain-compromise/&quot;&gt;Microsoft Security Blog: From package to postinstall payload: Inside the Mastra npm supply chain compromise by Sapphire Sleet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/security/blog/2026/04/01/mitigating-the-axios-npm-supply-chain-compromise/&quot;&gt;Microsoft Security Blog: Mitigating the Axios npm supply chain compromise&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.blog/changelog/2026-06-09-upcoming-breaking-changes-for-npm-v12/&quot;&gt;GitHub Changelog: Upcoming breaking changes for npm v12&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://research.jfrog.com/post/easy-day-js/&quot;&gt;JFrog Security Research: easy-day-js: Supply Chain Campaign Targets Mastra npm Packages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://corgea.com/research/mastra-npm-easy-day-js-supply-chain-attack-june-2026&quot;&gt;Corgea Research: Mastra npm scope takeover used easy-day-js to Trojanize 141 to 143 packages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.bleepingcomputer.com/news/security/microsoft-links-mastra-ai-supply-chain-attack-to-north-korean-hackers/&quot;&gt;BleepingComputer: Microsoft links Mastra AI supply chain attack to North Korean hackers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>Fortinet credential exposure needs a reset plan now</title>
    <link href="https://data-today.net/cybersecurity/cybersecurity-fortinet-reset-plan/" />
    <updated>2026-06-20T00:00:00Z</updated>
    <id>https://data-today.net/cybersecurity/cybersecurity-fortinet-reset-plan/</id>
    <content type="html">&lt;p&gt;Edge devices are where security programs go to become urgent. They sit on the public internet, terminate remote access, often bridge straight into identity systems, and somehow still end up with old local admin accounts that nobody wants to touch on a Friday.&lt;/p&gt;
&lt;p&gt;Fortinet credential exposure is the problem CISA put in front of operators on June 18, 2026: credentials associated with &lt;strong&gt;approximately 74,000 Fortinet devices&lt;/strong&gt; are exposed, including firewalls and SSL VPN gateways, and malicious actors have reportedly targeted internet-accessible Fortinet devices across government and private sector organizations. &lt;a href=&quot;https://www.cisa.gov/news-events/alerts/2026/06/18/cisa-urges-hardening-fortinet-devices-after-reports-credential-exposure&quot;&gt;CISA urged impacted Fortinet customers&lt;/a&gt; to terminate sessions, reset passwords, confirm stronger credential hashing, review logs, require phishing-resistant MFA, and lock down public management access.&lt;/p&gt;
&lt;p&gt;That list sounds basic. That is exactly why it matters.&lt;/p&gt;
&lt;p&gt;If you run production systems, treat this as an edge access incident until your logs and device state prove otherwise. A leaked firewall or VPN credential does not need a zero-day to hurt you. It needs one exposed login page, one valid account, and one path from the appliance into the rest of your network.&lt;/p&gt;
&lt;h2 id=&quot;what-did-cisa-actually-warn-fortinet-operators-about&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/cybersecurity/cybersecurity-fortinet-reset-plan/#what-did-cisa-actually-warn-fortinet-operators-about&quot;&gt;&lt;span&gt;What did CISA actually warn Fortinet operators about?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;CISA said the activity, referred to as FortiBleed, involves leaked credentials tied to roughly &lt;strong&gt;74,000 Fortinet devices&lt;/strong&gt;. The affected class is operationally important: FortiGate appliances and associated SSL VPN gateways, the gear many teams use for remote access, administrative entry, segmentation, and traffic enforcement.&lt;/p&gt;
&lt;p&gt;The alert did not frame this as a new CVE with a patch-and-close remediation path. It framed the risk as credential exposure against internet-accessible edge infrastructure. That distinction changes the job. A patch may still be required in your environment, but patching alone does not invalidate a password that has already left your control.&lt;/p&gt;
&lt;p&gt;CISA’s immediate guidance boils down to five operator moves:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Kill active SSL VPN and administrative sessions.&lt;/li&gt;
&lt;li&gt;Reset Fortinet VPN and administrative passwords, especially on internet-facing systems.&lt;/li&gt;
&lt;li&gt;Confirm PBKDF2 storage for administrator credentials and remove weaker legacy hashes.&lt;/li&gt;
&lt;li&gt;Review firewall, VPN, authentication, and domain controller logs for lateral movement and unauthorized changes.&lt;/li&gt;
&lt;li&gt;Require phishing-resistant MFA and remove public management exposure.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The fifth item is the one that should trigger a design review, not a ticket comment. If firewall administration is reachable from the public internet, your control plane is part of your attack surface. That is a business choice dressed up as convenience.&lt;/p&gt;
&lt;p&gt;The FortiBleed number also lands in familiar territory. &lt;a href=&quot;https://www.fortinet.com/blog/psirt-blogs/malicious-actor-discloses-fortigate-ssl-vpn-credentials&quot;&gt;Fortinet disclosed in September 2021&lt;/a&gt; that a malicious actor had published SSL VPN access information for 87,000 FortiGate SSL VPN devices, tied to systems that had remained unpatched against CVE-2018-13379 at the time of scanning. The lesson aged badly for teams that rotated firmware without rotating credentials.&lt;/p&gt;
&lt;p&gt;The chart below shows why operators should view the 2026 alert as part of a repeated edge-credential failure pattern, not a weird one-off. The 2021 Fortinet disclosure named &lt;strong&gt;87,000&lt;/strong&gt; devices, while the 2026 CISA alert names approximately &lt;strong&gt;74,000&lt;/strong&gt;.&lt;/p&gt;
&lt;figure class=&quot;figure&quot;&gt;&lt;img src=&quot;https://data-today.net/posts/cybersecurity-fortinet-reset-plan-fig-fortinet-exposure-counts.png&quot; alt=&quot;Horizontal bar chart showing Fortinet credential exposure counts: 87,000 FortiGate SSL VPN devices in 2021 and approximately 74,000 Fortinet devices in 2026.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;figcaption&gt;Fortinet credential exposure counts from CISA and Fortinet: 87,000 FortiGate SSL VPN devices in 2021 and approximately 74,000 Fortinet devices in 2026.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Those two bars are close enough to be uncomfortable. Four and a half years separate the disclosures. The remediation muscle memory should be automatic by now.&lt;/p&gt;
&lt;h2 id=&quot;why-is-credential-exposure-on-a-firewall-worse-than-a-normal-password-leak&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/cybersecurity/cybersecurity-fortinet-reset-plan/#why-is-credential-exposure-on-a-firewall-worse-than-a-normal-password-leak&quot;&gt;&lt;span&gt;Why is credential exposure on a firewall worse than a normal password leak?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A leaked SaaS password is bad. A leaked firewall or VPN credential can be worse because it may land an attacker at the edge of a trusted network zone, next to identity plumbing, admin interfaces, routes, logs, and configuration secrets.&lt;/p&gt;
&lt;p&gt;That is why CISA’s log review list includes domain controllers. Once an attacker authenticates through a VPN gateway or administrative interface, the next useful question is where that account can go. Can it reach management networks? Can it query Active Directory? Can it see backup infrastructure? Can it pull configuration that contains LDAP bind accounts, RADIUS shared secrets, SAML settings, or local break-glass accounts?&lt;/p&gt;
&lt;p&gt;Builders should care because this is where tidy architecture diagrams meet the damp basement. The firewall is supposed to enforce boundaries. In many environments it also carries exceptions, legacy routes, broad admin profiles, and years of accumulated operational shortcuts.&lt;/p&gt;
&lt;p&gt;Three practical consequences follow.&lt;/p&gt;
&lt;p&gt;First, password rotation must include connected identity paths. If a FortiGate configuration references LDAP, RADIUS, SAML, TACACS, automation users, or monitoring accounts, rotate and review those credentials too. Resetting only the obvious local admin account can leave the useful credential untouched.&lt;/p&gt;
&lt;p&gt;Second, session termination matters. CISA explicitly told operators to terminate all active SSL VPN and administrative sessions. If you reset credentials while leaving active sessions alive, you may only have improved the attacker’s day by giving them a quiet persistence window.&lt;/p&gt;
&lt;p&gt;Third, MFA has to cover the external gateways and administrative interfaces that matter. CISA called for phishing-resistant MFA across remote access and administrative accounts. SMS codes and push fatigue prompts are the bargain-bin version of this control. For high-value edge access, favor FIDO2 security keys, platform passkeys with hardware-backed protection, or certificate-bound flows where your stack supports them.&lt;/p&gt;
&lt;p&gt;Fortinet has been warning about the same class of access problem. &lt;a href=&quot;https://www.fortinet.com/blog/industry-trends/attacks-at-the-speed-of-ai&quot;&gt;Fortinet wrote in March 2026&lt;/a&gt; that one observed campaign succeeded through exposed management ports and weak credentials with single-factor authentication, using password spraying for initial access. You do not need to buy the AI framing to accept the operational point: exposed management plus weak authentication scales beautifully for attackers.&lt;/p&gt;
&lt;p&gt;The underrated risk is configuration theft. Once an attacker can authenticate to an edge device, they may learn far more than a password. Routes, objects, VPN users, policy names, certificates, syslog destinations, identity integrations, and admin account structure all help build a map. For a production operator, that map is almost as sensitive as source code.&lt;/p&gt;
&lt;h2 id=&quot;how-should-you-respond-in-the-first-24-hours&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/cybersecurity/cybersecurity-fortinet-reset-plan/#how-should-you-respond-in-the-first-24-hours&quot;&gt;&lt;span&gt;How should you respond in the first 24 hours?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Start with containment, then move to evidence. Do not begin with a meeting whose first agenda item is naming the incident. Your FortiGate estate can be triaged before the slide deck exists.&lt;/p&gt;
&lt;p&gt;Use this 24-hour order of operations.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Inventory every Fortinet edge device.&lt;/strong&gt; Pull from asset management, FortiManager, cloud inventories, DNS, certificate transparency, external attack surface tooling, and Shodan-style exposure checks if you use them. Your target list should include physical FortiGate appliances, virtual appliances, SSL VPN gateways, and management interfaces.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Identify internet exposure.&lt;/strong&gt; Separate devices with public SSL VPN, public administrative GUI, public SSH, and public API access. Public administration should be treated as a defect unless there is a tightly justified exception.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Terminate sessions.&lt;/strong&gt; End active SSL VPN and administrative sessions before or during credential rotation. Capture session metadata first if your incident process requires it, but do not leave live sessions in place for convenience.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Rotate credentials broadly.&lt;/strong&gt; Reset local Fortinet administrator passwords, VPN user credentials, break-glass accounts, service accounts, and upstream identity credentials connected to the appliance. Prioritize accounts with admin profiles and accounts reused across sites.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Enforce phishing-resistant MFA.&lt;/strong&gt; Apply it to remote access and administrative access. Confirm enforcement at the gateway, not only in a policy document or identity provider group that nobody tested.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Review logs with a lateral movement lens.&lt;/strong&gt; Look for unusual VPN source locations, successful logins outside normal hours, new admin accounts, configuration exports, policy changes, new local users, altered LDAP settings, and domain controller authentication spikes.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Lock down management.&lt;/strong&gt; Move administrative access behind trusted internal networks, out-of-band management, ZTNA, bastions, or a dedicated admin VPN with strong MFA. If a vendor appliance admin page is public, attackers will find it faster than your next audit.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The PBKDF2 item deserves its own check because it can look like a compliance footnote. It is not. &lt;a href=&quot;https://fortinetweb.s3.amazonaws.com/docs.fortinet.com/v2/attachments/f7819858-e811-11ef-b13a-ca4255feedd9/fortios-v7.2.11-release-notes.pdf&quot;&gt;Fortinet’s FortiOS 7.2.11 release notes&lt;/a&gt; say FortiGate uses PBKDF2 with randomized salts to hash and store system administrator passwords. &lt;a href=&quot;https://docs.fortinet.com/document/fortigate/7.2.11/administration-guide/548023/enhanced-administrator-password-security-new&quot;&gt;Fortinet’s documentation&lt;/a&gt; also shows PBKDF2-encoded administrator passwords with a PB2 prefix and describes older SHA256 hashes with an SH2 prefix.&lt;/p&gt;
&lt;p&gt;For operators, the practical check is simple: verify that current administrator credentials are stored with the stronger scheme, then remove legacy hash exposure where your firmware and downgrade posture allow it. If you keep older hashes around for downgrade convenience, document who accepted that risk and when it expires.&lt;/p&gt;
&lt;h2 id=&quot;what-should-you-audit-after-the-passwords-are-changed&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/cybersecurity/cybersecurity-fortinet-reset-plan/#what-should-you-audit-after-the-passwords-are-changed&quot;&gt;&lt;span&gt;What should you audit after the passwords are changed?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Credential rotation is the starting gun. The audit determines whether the attacker got farther.&lt;/p&gt;
&lt;p&gt;Focus on the paths an authenticated edge user could actually touch. Pull logs from the Fortinet device, FortiAnalyzer or your SIEM, identity providers, RADIUS or TACACS servers, VPN auth logs, EDR, DNS, proxy logs, and domain controllers. Your timeline should cover at least the period when the credential may have been exposed, plus the 7 days after rotation to catch reuse attempts.&lt;/p&gt;
&lt;p&gt;Look for these signals:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Successful VPN logins from unusual autonomous systems, countries, residential proxy ranges, or cloud hosting providers.&lt;/li&gt;
&lt;li&gt;Logins to dormant accounts or accounts that should never use remote access.&lt;/li&gt;
&lt;li&gt;New local admins, changed admin profiles, altered trusted hosts, or unexpected API users.&lt;/li&gt;
&lt;li&gt;Configuration backups, exports, or downloads that line up with suspicious sessions.&lt;/li&gt;
&lt;li&gt;Changes to firewall policies, static routes, VIPs, VPN portals, LDAP servers, RADIUS servers, SAML settings, or certificates.&lt;/li&gt;
&lt;li&gt;Authentication attempts from the Fortinet device toward domain controllers that do not match normal operations.&lt;/li&gt;
&lt;li&gt;Post-login scanning from VPN address pools into management subnets, backup networks, virtualization platforms, or source control systems.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The cleanest outcome is boring: you find exposed devices, rotate credentials, close management exposure, and logs show no suspicious post-authentication activity. The messy outcome is more common than teams like to admit: logs are incomplete, VPN attribution is weak, and nobody knows whether the local admin account was shared by 3 engineers or 30.&lt;/p&gt;
&lt;p&gt;If your logs are thin, widen containment. Force password resets for users who had VPN access. Rotate service accounts connected to the appliance. Reissue certificates if private key exposure is plausible. Review configurations from known-good backups. Treat unknowns as risk, not as free passes.&lt;/p&gt;
&lt;p&gt;There is one trap to avoid: declaring victory because the device is now patched. CISA’s alert is about exposed credentials. A fully patched device can still accept a valid password. The operator move is state change: sessions killed, credentials invalidated, MFA enforced, management narrowed, logs reviewed.&lt;/p&gt;
&lt;h2 id=&quot;what-changes-should-stay-after-fortibleed-fades-from-the-queue&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/cybersecurity/cybersecurity-fortinet-reset-plan/#what-changes-should-stay-after-fortibleed-fades-from-the-queue&quot;&gt;&lt;span&gt;What changes should stay after FortiBleed fades from the queue?&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The durable fix is to stop treating edge devices as special boxes with special exceptions. They are production systems. Put them under the same discipline you expect for databases, Kubernetes control planes, and CI/CD administrators.&lt;/p&gt;
&lt;p&gt;That means four standing controls.&lt;/p&gt;
&lt;p&gt;First, maintain an edge access register. Every firewall, VPN gateway, load balancer admin panel, ZTNA connector, and remote access portal should have an owner, internet exposure status, firmware version, MFA status, logging destination, and credential rotation date. If you cannot answer those fields in 10 minutes, your estate is already too fuzzy.&lt;/p&gt;
&lt;p&gt;Second, ban public management by default. Use trusted host restrictions, management VLANs, bastions, device certificates, and phishing-resistant MFA. Exceptions should expire automatically. A public admin page should feel as weird as a public database console.&lt;/p&gt;
&lt;p&gt;Third, separate human admin accounts from service and automation accounts. Shared local admin accounts make incident response mushy. Named accounts with least privilege and centralized logging give you evidence when something breaks.&lt;/p&gt;
&lt;p&gt;Fourth, rehearse credential compromise for edge devices. Once per quarter, run the playbook: identify affected devices, terminate sessions, rotate local and upstream credentials, validate MFA, check logs, and produce a short incident report. The first time you test this should not be while CISA is warning about 74,000 exposed devices.&lt;/p&gt;
&lt;p&gt;For product and business leaders, the budget ask is smaller than the outage it prevents. You need time for firmware maintenance, MFA rollout, attack surface management, and log retention. Those do not ship features, but they protect the path through which every feature gets accessed by employees, vendors, and attackers.&lt;/p&gt;
&lt;p&gt;The overhyped angle is the name. FortiBleed sounds like a branded mega-bug. The useful read is more mundane and more damning: exposed edge access, stale credentials, and weak authentication still beat expensive security stacks.&lt;/p&gt;
&lt;h2 id=&quot;the-edge-is-part-of-your-identity-system&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/cybersecurity/cybersecurity-fortinet-reset-plan/#the-edge-is-part-of-your-identity-system&quot;&gt;&lt;span&gt;The edge is part of your identity system&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A firewall used to be a traffic control point. In 2026, it is also an identity enforcement point, a remote work gateway, a secrets-adjacent configuration store, and a high-value admin surface.&lt;/p&gt;
&lt;p&gt;Treat the Fortinet credential exposure like a production identity incident. Rotate the keys, check the doors, read the logs, and remove the public handles attackers keep grabbing.&lt;/p&gt;
&lt;h2 id=&quot;sources&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://data-today.net/cybersecurity/cybersecurity-fortinet-reset-plan/#sources&quot;&gt;&lt;span&gt;Sources&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.cisa.gov/news-events/alerts/2026/06/18/cisa-urges-hardening-fortinet-devices-after-reports-credential-exposure&quot;&gt;CISA: CISA Urges Hardening Fortinet Devices After Reports of Credential Exposure&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.fortinet.com/blog/psirt-blogs/malicious-actor-discloses-fortigate-ssl-vpn-credentials&quot;&gt;Fortinet: Malicious Actor Discloses FortiGate SSL-VPN Credentials&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.fortinet.com/blog/industry-trends/attacks-at-the-speed-of-ai&quot;&gt;Fortinet: Attacks at the Speed of AI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://fortinetweb.s3.amazonaws.com/docs.fortinet.com/v2/attachments/f7819858-e811-11ef-b13a-ca4255feedd9/fortios-v7.2.11-release-notes.pdf&quot;&gt;Fortinet: FortiOS 7.2.11 Release Notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.fortinet.com/document/fortigate/7.2.11/administration-guide/548023/enhanced-administrator-password-security-new&quot;&gt;Fortinet documentation: Enhanced administrator password security&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
</feed>