{"id":4113,"date":"2026-11-10T08:28:44","date_gmt":"2026-11-10T16:28:44","guid":{"rendered":"https:\/\/cyber.mag212.com\/?p=4113"},"modified":"2026-11-10T14:41:32","modified_gmt":"2026-11-10T22:41:32","slug":"mag212-cyber-daily-2026-11-10-openssh-sshole-sonicwall-qubole","status":"publish","type":"post","link":"https:\/\/cyber.mag212.com\/fr\/mag212-cyber-daily-2026-11-10-openssh-sshole-sonicwall-qubole\/","title":{"rendered":"Des attaquants s'introduisent par des portes de confiance\u00a0: faille OpenSSH, contournement de l'authentification multifacteur SonicWall, abus de Qubole sur AWS \u2014 MAG212 CYBER Daily, 10 novembre 2026"},"content":{"rendered":"\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/cyber.mag212.com\/wp-content\/uploads\/2026\/11\/MAG212_CYBER_Daily_2026-11-10.pdf\">Download the PDF (22 pages)<\/a><\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>MAG212 CYBER \u00b7 Daily Cyber Intelligence \u00b7 Tuesday, November 10, 2026 \u00b7 Research cutoff 06:15 PT.<\/strong> Today&#8217;s thread is trust that was granted once and never re-examined. An OpenSSH bug lets attackers log in to Alpine and other musl-based Linux systems with an oversized password, and CISA gave federal agencies until November 12 to fix it. A SonicWall SSL-VPN flaw skips SAML-enforced MFA. A data platform&#8217;s own AWS account was used to assume roles its customers had created for it. And a real release pipeline signed and published malware. Most of the fixes are configuration discipline, not new tools.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What needs attention today<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>#<\/th><th>Action<\/th><th>How<\/th><\/tr><\/thead><tbody><tr><td>1<\/td><td><strong>Turn off password SSH on Alpine\/musl hosts and containers, then patch and hunt<\/strong><\/td><td>Set <code>PasswordAuthentication no<\/code>, upgrade to your branch&#8217;s fixed openssh package, restart sshd, then search logs for <code>Accepted password for<\/code> on passwordless accounts. CVE-2026-123158, CISA KEV due Nov 12.<\/td><\/tr><tr><td>2<\/td><td><strong>Upgrade every SonicWall firewall; close exposed NAS media ports<\/strong><\/td><td>SonicOS 7.3.4-7013 or 8.2.3-8015, SAML SSL-VPN first (no workaround). On NAS boxes, stop forwarding Plex port 32400, update Plex and rotate passwords.<\/td><\/tr><tr><td>3<\/td><td><strong>Audit vendor access into your cloud accounts<\/strong><\/td><td>List every IAM role that trusts a vendor account, starting with Qubole&#8217;s 805246085872. Delete unused ones, add source-IP or VPC-endpoint conditions, and review CloudTrail from October 1.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">What\u2019s inside<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>OpenSSH &#8220;sshole&#8221; (CVE-2026-123158):<\/strong> an oversized password opens the door on Alpine\/musl sshd without PAM. Exploited; KEV due Nov 12.<\/li>\n\n\n<li><strong>SonicWall SSL-VPN (CVE-2026-19868):<\/strong> SAML-enforced MFA bypass on SonicOS Gen7\/Gen8, no workaround.<\/li>\n\n\n<li><strong>Plex2Shell:<\/strong> four unauthenticated flaws in Plex Media Server, exploited against QNAP NAS owners.<\/li>\n\n\n<li><strong>Three more on a three-day KEV clock:<\/strong> FreeSWITCH, GPUStack and IBM Aspera Faspex, all due Nov 12.<\/li>\n\n\n<li><strong>Qubole&#8217;s own AWS account turned on its customers:<\/strong> cross-account IAM role abuse, with published indicators.<\/li>\n\n\n<li><strong>France blames Iran&#8217;s IRGC for heating supermarket fridges:<\/strong> refrigeration controllers become a nation-state OT issue.<\/li>\n\n\n<li><strong>Frontline Education breach rises to 3.08 million,<\/strong> plus Amplifon and Revolve count updates.<\/li>\n\n\n<li><strong>bee-js and Swarm Desktop:<\/strong> signed, provenanced and malicious, through hijacked maintainer and release-bot accounts.<\/li>\n\n\n<li><strong>Defender&#8217;s Action Desk:<\/strong> prioritised checklist and this week&#8217;s KEV deadlines, plus an awareness lesson for staff and leaders.<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Read the full stories<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/cyber.mag212.com\/openssh-sshole-cve-2026-123158-alpine-musl-password-bypass\/\">OpenSSH \u201csshole\u201d (CVE-2026-123158): Oversized Passwords Log In to Alpine and musl Linux, Now Exploited<\/a><\/li>\n\n\n<li><a href=\"https:\/\/cyber.mag212.com\/sonicwall-cve-2026-19868-ssl-vpn-saml-mfa-bypass-fixed-versions\/\">SonicWall CVE-2026-19868 Update: SSL-VPNs That Skip SAML MFA, Fixed SonicOS Builds and the 20 Nov Deadline<\/a><\/li>\n\n\n<li><a href=\"https:\/\/cyber.mag212.com\/plex2shell-plex-media-server-qnap-nas-exploited-port-32400\/\">Plex2Shell: Four Unauthenticated Plex Flaws Exploited Against QNAP NAS Owners \u2014 Update and Close Port 32400<\/a><\/li>\n\n\n<li><a href=\"https:\/\/cyber.mag212.com\/cisa-kev-freeswitch-gpustack-ibm-aspera-faspex-12-november-deadline\/\">CISA Gives Three Days to Fix Exploited FreeSWITCH, GPUStack and IBM Aspera Faspex Flaws<\/a><\/li>\n\n\n<li><a href=\"https:\/\/cyber.mag212.com\/qubole-aws-account-abused-customer-iam-roles-cross-account\/\">Qubole\u2019s Own AWS Account Was Used to Assume Customer IAM Roles and Steal Cloud and Identity Secrets<\/a><\/li>\n\n\n<li><a href=\"https:\/\/cyber.mag212.com\/france-blames-iran-irgc-supermarket-refrigeration-cyberattack-controllers\/\">France Blames Iran\u2019s IRGC for Heating Supermarket Fridges: Refrigeration Controllers Become a State Target<\/a><\/li>\n\n\n<li><a href=\"https:\/\/cyber.mag212.com\/frontline-education-breach-3-million-school-staff-students-amplifon-revolve\/\">Frontline Education Breach Climbs to 3.08 Million School Staff and Students; Amplifon, Revolve Counts Rise<\/a><\/li>\n\n\n<li><a href=\"https:\/\/cyber.mag212.com\/bee-js-swarm-desktop-supply-chain-compromise-signed-malware\/\">Signed, Provenanced and Malicious: Hijacked Accounts Shipped Malware in bee-js 13.3.0 and Swarm Desktop 0.56.2<\/a><\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Updates on earlier coverage<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>SonicWall CVE-2026-19868<\/strong> (first covered November 7): this issue adds the fixed SonicOS versions, the SAML-only exposure condition and the federal KEV deadline of November 20.<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Update 10 Nov, 10:35 PT: Microsoft Patch Tuesday (updated 14:45 PT)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Microsoft has published its November 2026 security updates. By our count of Microsoft&#8217;s own release data, 1,093 Microsoft-assigned CVEs were first published today, 63 of them rated Critical. Other trackers may count differently, depending on which re-released and third-party entries they include.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>One exploited zero-day: <a href=\"https:\/\/msrc.microsoft.com\/update-guide\/vulnerability\/CVE-2026-124194\" target=\"_blank\" rel=\"noopener\">CVE-2026-124194<\/a>, Microsoft Outlook spoofing<\/strong> (CVSS 6.5). Microsoft marks it &#8220;Exploitation Detected&#8221;; it was not publicly disclosed beforehand. Per Microsoft&#8217;s FAQ, a crafted message file opened in Outlook can make it connect to an attacker-controlled location without the usual external-content warning, leaking the user&#8217;s NTLMv2 hash, which can be used to impersonate them. The Preview Pane is not an attack vector; the user must open the file. Affected: Microsoft 365 Apps for Enterprise and Office LTSC 2021\/2024. <strong>Action:<\/strong> deploy today&#8217;s Office updates first, and keep outbound SMB\/NTLM to the internet blocked.<\/li>\n\n\n<li><strong>Update 10 Nov, 14:45 PT \u2014 CISA KEV:<\/strong> CISA added six exploited flaws to the <a href=\"https:\/\/www.cisa.gov\/known-exploited-vulnerabilities-catalog\" target=\"_blank\" rel=\"noopener\">KEV catalog<\/a> today, including the Outlook zero-day CVE-2026-124194 (federal deadline 24 Nov). The others: Barracuda CVE-2026-111560 (OS command injection, multiple products) and Barracuda Email Security Gateway CVE-2026-116606 (authentication bypass), both due <strong>13 Nov<\/strong>; Cisco BroadWorks CVE-2026-20320 (XXE), Google Chromium CVE-2026-125350 (use-after-free) and Openwave Webtop Media Transcoder CVE-2026-111793, due 24 Nov. Update Chrome\/Edge and other Chromium browsers now; Barracuda customers should act first given the three-day deadline.<\/li>\n\n\n<li><strong>Update 10 Nov, 14:45 PT \u2014 Fortinet:<\/strong> Fortinet has now published its advisories on the <a href=\"https:\/\/www.fortiguard.com\/psirt\" target=\"_blank\" rel=\"noopener\">FortiGuard PSIRT page<\/a>; its RSS feed lists 50 advisories published or revised today, ten of them scored CVSS 9.0 or higher. The most serious, per Fortinet&#8217;s summaries: FortiMail unauthenticated code or command execution (<a href=\"https:\/\/fortiguard.fortinet.com\/psirt\/FG-IR-26-199\" target=\"_blank\" rel=\"noopener\">FG-IR-26-199<\/a>, CVSS 9.8; <a href=\"https:\/\/fortiguard.fortinet.com\/psirt\/FG-IR-26-200\" target=\"_blank\" rel=\"noopener\">FG-IR-26-200<\/a>, 9.8, via HA join requests; <a href=\"https:\/\/fortiguard.fortinet.com\/psirt\/FG-IR-26-216\" target=\"_blank\" rel=\"noopener\">FG-IR-26-216<\/a>, 9.4, SQL injection) and IBE webmail account takeover (<a href=\"https:\/\/fortiguard.fortinet.com\/psirt\/FG-IR-26-207\" target=\"_blank\" rel=\"noopener\">FG-IR-26-207<\/a>, <a href=\"https:\/\/fortiguard.fortinet.com\/psirt\/FG-IR-26-208\" target=\"_blank\" rel=\"noopener\">FG-IR-26-208<\/a>); FortiManager FGFM code execution by an unauthenticated attacker who can reach the FGFM port (<a href=\"https:\/\/fortiguard.fortinet.com\/psirt\/FG-IR-26-275\" target=\"_blank\" rel=\"noopener\">FG-IR-26-275<\/a>); a FortiOS\/FortiSASE OSPF daemon authentication bypass, CVE-2026-126253 (<a href=\"https:\/\/fortiguard.fortinet.com\/psirt\/FG-IR-26-267\" target=\"_blank\" rel=\"noopener\">FG-IR-26-267<\/a>, 9.3); and FortiAuthenticator authentication bypasses (<a href=\"https:\/\/fortiguard.fortinet.com\/psirt\/FG-IR-26-271\" target=\"_blank\" rel=\"noopener\">FG-IR-26-271<\/a>, <a href=\"https:\/\/fortiguard.fortinet.com\/psirt\/FG-IR-26-265\" target=\"_blank\" rel=\"noopener\">FG-IR-26-265<\/a>). Fortinet&#8217;s summaries do not mention exploitation; check each advisory. If you installed the October builds, confirm each advisory&#8217;s fixed version against what you run; if you didn&#8217;t, upgrade now, starting with internet-facing FortiMail and any FortiManager with FGFM reachable.<\/li>\n\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Source: <a href=\"https:\/\/msrc.microsoft.com\/update-guide\/releaseNote\/2026-Nov\" target=\"_blank\" rel=\"noopener\">Microsoft Security Update Guide, November 2026 release notes<\/a> and CVRF data; CISA KEV catalog (version released 10 Nov); Fortinet PSIRT advisories and RSS feed.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Read the full edition<\/h2>\n\n\n\n<!-- MAG212 CYBER Daily 2026-11-10: paste into a WordPress Custom HTML block. All styles are scoped to .mag212-daily-20261110. -->\n<style>\n.mag212-daily-20261110{--navy:#0b1830;--navy2:#12223f;--char:#1d2433;--cyan:#22d3ee;--cyan-d:#0e7490;--red:#e5484d;--green:#3fb950;--amber:#f5a524;--ink:#0f172a;--muted:#475569;--line:#dbe3ee;\n font-family:Inter,\"Segoe UI\",system-ui,-apple-system,Helvetica,Arial,sans-serif;color:var(--ink);font-size:16px;line-height:1.58;background:#0a1222;padding:24px 12px;-webkit-text-size-adjust:100%}\n.mag212-daily-20261110 *{box-sizing:border-box}\n.mag212-daily-20261110 a{color:#0369a1;text-decoration:underline;text-underline-offset:2px}\n.mag212-daily-20261110 a.s{font-size:.78em;font-weight:600;color:#0e7490;text-decoration:none;border-bottom:1px solid #67e8f9;white-space:nowrap}\n.mag212-daily-20261110 a.s::before{content:\"\u2197 \"}\n.mag212-daily-20261110 .sheet{background:#fff;max-width:920px;margin:0 auto 26px;padding:44px 52px;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.35)}\n.mag212-daily-20261110 h1,.mag212-daily-20261110 h2,.mag212-daily-20261110 h3,.mag212-daily-20261110 h4{line-height:1.2;margin:0 0 .5em;letter-spacing:-.01em}\n.mag212-daily-20261110 h2.sec{font-size:30px;margin-top:0}\n.mag212-daily-20261110 h3{font-size:19px;margin-top:1.35em;padding-left:12px;border-left:4px solid var(--cyan)}\n.mag212-daily-20261110 h4{font-size:16px;margin-top:1em}\n.mag212-daily-20261110 p{margin:.55em 0 .8em}\n.mag212-daily-20261110 ul,.mag212-daily-20261110 ol{margin:.4em 0 .9em;padding-left:1.4em}\n.mag212-daily-20261110 li{margin:.25em 0}\n.mag212-daily-20261110 code,.mag212-daily-20261110 .mono{font-family:\"DejaVu Sans Mono\",Consolas,\"SFMono-Regular\",monospace;font-size:.88em;background:#eef2f7;border-radius:4px;padding:0 .3em;overflow-wrap:anywhere}\n.mag212-daily-20261110 .muted{color:var(--muted)}\n.mag212-daily-20261110 .small{font-size:13.5px}\n\n.mag212-daily-20261110 .b{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:4px;vertical-align:2px;margin-right:4px;white-space:nowrap}\n.mag212-daily-20261110 .b.c{background:#dcfce7;color:#14532d;border:1px solid #86efac}\n.mag212-daily-20261110 .b.r{background:#fef3c7;color:#78350f;border:1px solid #fcd34d}\n.mag212-daily-20261110 .b.a{background:#e0f2fe;color:#0c4a6e;border:1px solid #7dd3fc}\n.mag212-daily-20261110 .b.u{background:#f1f5f9;color:#334155;border:1px solid #cbd5e1}\n.mag212-daily-20261110 .b.x{background:var(--red);color:#fff}\n.mag212-daily-20261110 .b.k{background:var(--navy);color:var(--cyan)}\n\n.mag212-daily-20261110 .mast{font-weight:900;letter-spacing:-.02em;line-height:1}\n.mag212-daily-20261110 .mast .m{color:var(--red)} .mag212-daily-20261110 .mast .n{color:var(--green)} .mag212-daily-20261110 .mast .y{color:#fff}\n\n.mag212-daily-20261110 .cover{background:radial-gradient(120% 80% at 70% 40%,#16305a 0%,#0b1830 55%,#070f1f 100%);color:#e2e8f0;padding:0;overflow:hidden;position:relative}\n.mag212-daily-20261110 .cover-in{padding:42px 48px 0}\n.mag212-daily-20261110 .cover .mast{font-size:84px}\n.mag212-daily-20261110 .cover .sub{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:12px}\n.mag212-daily-20261110 .daily{background:var(--cyan);color:var(--navy);font-weight:900;font-size:30px;letter-spacing:.18em;padding:6px 16px 6px 20px;border-radius:6px}\n.mag212-daily-20261110 .edition{color:var(--cyan);font-weight:800;letter-spacing:.24em;font-size:15px}\n.mag212-daily-20261110 .cover .date{margin-top:18px;font-size:20px;font-weight:700;color:#fff}\n.mag212-daily-20261110 .cover .cutoff{font-size:13.5px;color:#9fb3cf;margin-top:2px}\n.mag212-daily-20261110 .cover h1{font-size:46px;color:#fff;margin:26px 0 12px;max-width:16ch;line-height:1.05}\n.mag212-daily-20261110 .cover h1 em{font-style:normal;color:var(--cyan)}\n.mag212-daily-20261110 .cover .dek{font-size:17px;color:#c8d4e6;max-width:46ch}\n.mag212-daily-20261110 .cover .art{margin-top:22px;display:block}\n.mag212-daily-20261110 .cover .art svg{display:block;width:100%;height:auto}\n.mag212-daily-20261110 .lines{display:grid;grid-template-columns:1fr 1fr;gap:10px 22px;margin:22px 0 0;padding:0;list-style:none}\n.mag212-daily-20261110 .lines li{border-left:3px solid var(--cyan);padding:2px 0 2px 10px;font-size:14.5px;color:#e2e8f0;margin:0}\n.mag212-daily-20261110 .lines li b{color:#fff}\n.mag212-daily-20261110 .lines li.hot{border-left-color:var(--red)}\n.mag212-daily-20261110 .cover-foot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 48px 22px;font-size:13.5px;color:#9fb3cf;border-top:1px solid #1f3558;background:#070f1f}\n.mag212-daily-20261110 .cover-foot a{color:var(--cyan)}\n\n.mag212-daily-20261110 .runhead{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid var(--navy);padding-bottom:8px;margin-bottom:20px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:700}\n.mag212-daily-20261110 .runhead .mast{font-size:15px;letter-spacing:0}\n.mag212-daily-20261110 .runhead .mast .y{color:var(--navy)}\n\n.mag212-daily-20261110 .ahead{background:linear-gradient(135deg,var(--navy) 0%,#13284d 100%);color:#e2e8f0;border-radius:12px;padding:22px 26px;margin:0 0 18px}\n.mag212-daily-20261110 .ahead .kick{color:var(--cyan);font-weight:800;font-size:12.5px;letter-spacing:.16em;text-transform:uppercase}\n.mag212-daily-20261110 .ahead h2{color:#fff;font-size:28px;margin:6px 0 10px}\n.mag212-daily-20261110 .ahead .num{float:right;font-size:44px;font-weight:900;color:#1f3a66;line-height:.9;margin-left:12px}\n.mag212-daily-20261110 .chips{display:flex;flex-wrap:wrap;gap:6px}\n.mag212-daily-20261110 .chip{font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px;background:#1f3558;color:#dbeafe}\n.mag212-daily-20261110 .chip.hot{background:var(--red);color:#fff}\n.mag212-daily-20261110 .chip.warn{background:var(--amber);color:var(--ink)}\n.mag212-daily-20261110 .chip.ok{background:#14532d;color:#bbf7d0}\n.mag212-daily-20261110 .glance{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:6px 0 16px}\n.mag212-daily-20261110 .glance div{background:#f8fafc;padding:9px 12px;font-size:13.5px}\n.mag212-daily-20261110 .glance b{display:block;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}\n\n.mag212-daily-20261110 figure{margin:16px 0 18px;break-inside:avoid;page-break-inside:avoid}\n.mag212-daily-20261110 .fig-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:#f7fafc}\n.mag212-daily-20261110 .fig-scroll svg{display:block;width:100%;height:auto}\n.mag212-daily-20261110 figcaption{font-size:13px;color:var(--muted);margin-top:6px;line-height:1.45}\n.mag212-daily-20261110 figcaption b{color:var(--ink)}\n.mag212-daily-20261110 .credit{display:block;font-size:11.5px;font-style:italic;color:#64748b}\n\n.mag212-daily-20261110 .t-wrap{overflow-x:auto;margin:10px 0 16px}\n.mag212-daily-20261110 table{border-collapse:collapse;width:100%;font-size:13.5px}\n.mag212-daily-20261110 th{background:var(--navy);color:#fff;text-align:left;padding:7px 9px;font-size:12px;letter-spacing:.04em}\n.mag212-daily-20261110 td{padding:6px 9px;border-bottom:1px solid var(--line);vertical-align:top}\n.mag212-daily-20261110 tr:nth-child(even) td{background:#f8fafc}\n.mag212-daily-20261110 table.ioc td:first-child{white-space:nowrap;font-weight:600}\n.mag212-daily-20261110 table.reg{font-size:12px}\n.mag212-daily-20261110 table.reg td{padding:4px 7px}\n.mag212-daily-20261110 table.reg td:last-child{overflow-wrap:anywhere;word-break:break-word}\n\n.mag212-daily-20261110 .cmd{background:#0f172a;color:#e2e8f0;border-radius:10px;margin:12px 0 16px;overflow:hidden;break-inside:avoid}\n.mag212-daily-20261110 .cmd-h{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;background:#1e293b;padding:8px 12px;font-size:12px;color:#cbd5e1}\n.mag212-daily-20261110 .cmd-h b{color:#fff}\n.mag212-daily-20261110 .cmd pre{margin:0;padding:12px 14px;font-family:\"DejaVu Sans Mono\",Consolas,monospace;font-size:13px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}\n.mag212-daily-20261110 .cmd pre .cm{color:#7dd3fc}\n.mag212-daily-20261110 .cmd-f{padding:7px 12px 10px;font-size:12px;color:#94a3b8;border-top:1px solid #1e293b}\n.mag212-daily-20261110 .ro{background:#14532d;color:#bbf7d0;font-weight:800;font-size:10.5px;padding:2px 7px;border-radius:4px;letter-spacing:.06em}\n.mag212-daily-20261110 .chg{background:var(--amber);color:var(--ink);font-weight:800;font-size:10.5px;padding:2px 7px;border-radius:4px;letter-spacing:.06em}\n\n.mag212-daily-20261110 .call{border-radius:10px;padding:14px 18px;margin:14px 0;break-inside:avoid}\n.mag212-daily-20261110 .call.pend{background:#fff7ed;border:2px dashed var(--amber)}\n.mag212-daily-20261110 .call.info{background:#f0f9ff;border:1px solid #bae6fd}\n.mag212-daily-20261110 .call.warn{background:#fef2f2;border:1px solid #fecaca}\n.mag212-daily-20261110 .call.dark{background:var(--navy);color:#e2e8f0}\n.mag212-daily-20261110 .call.dark h3{color:#fff;border-left-color:var(--cyan)}\n.mag212-daily-20261110 .call h4{margin-top:0}\n.mag212-daily-20261110 .steps{counter-reset:s;list-style:none;padding-left:0}\n.mag212-daily-20261110 .steps>li{counter-increment:s;position:relative;padding-left:38px;margin:.5em 0}\n.mag212-daily-20261110 .steps>li::before{content:counter(s);position:absolute;left:0;top:1px;width:26px;height:26px;border-radius:50%;background:var(--navy);color:var(--cyan);font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center}\n.mag212-daily-20261110 .top3{display:grid;gap:12px;margin:12px 0}\n.mag212-daily-20261110 .top3 .act{display:grid;grid-template-columns:52px 1fr;gap:12px;background:#f8fafc;border:1px solid var(--line);border-left:5px solid var(--red);border-radius:10px;padding:12px 14px;break-inside:avoid}\n.mag212-daily-20261110 .top3 .act .n{font-size:34px;font-weight:900;color:var(--red);line-height:1}\n.mag212-daily-20261110 .top3 .act h4{margin:0 0 4px;font-size:16.5px}\n.mag212-daily-20261110 .top3 .act p{margin:0;font-size:14.5px}\n.mag212-daily-20261110 .lede{font-size:18px;line-height:1.55;color:#1e293b}\n.mag212-daily-20261110 .toc{list-style:none;padding:0;margin:8px 0 18px}\n.mag212-daily-20261110 .toc li{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:baseline;padding:8px 0;border-bottom:1px dotted #cbd5e1;margin:0}\n.mag212-daily-20261110 .toc .tn{font-weight:900;color:var(--cyan-d);font-size:18px}\n.mag212-daily-20261110 .toc a{color:var(--ink);text-decoration:none;font-weight:700}\n.mag212-daily-20261110 .toc .ts{display:block;font-weight:400;font-size:13px;color:var(--muted)}\n.mag212-daily-20261110 .toc .pg{font-weight:800;color:var(--navy)}\n.mag212-daily-20261110 .legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px 16px;font-size:13.5px}\n.mag212-daily-20261110 .check{list-style:none;padding:0}\n.mag212-daily-20261110 .check li{padding:8px 10px 8px 38px;position:relative;border-bottom:1px solid var(--line);margin:0;break-inside:avoid}\n.mag212-daily-20261110 .check li::before{content:\"\";position:absolute;left:8px;top:11px;width:16px;height:16px;border:2px solid var(--navy);border-radius:4px}\n.mag212-daily-20261110 .check li .when{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--red);margin-right:6px}\n.mag212-daily-20261110 .check li .when.w2{color:#b45309} .mag212-daily-20261110 .check li .when.w3{color:var(--cyan-d)}\n.mag212-daily-20261110 .subscribe{background:radial-gradient(120% 120% at 20% 10%,#16305a 0%,#0b1830 60%,#070f1f 100%);color:#e2e8f0;text-align:center}\n.mag212-daily-20261110 .subscribe .mast{font-size:60px}\n.mag212-daily-20261110 .subscribe .btn{display:inline-block;background:var(--cyan);color:var(--navy);font-weight:900;font-size:20px;padding:14px 26px;border-radius:10px;text-decoration:none;margin:18px 0 8px}\n.mag212-daily-20261110 .subscribe .why{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:26px 0 8px;text-align:left}\n.mag212-daily-20261110 .subscribe .why div{background:#12223f;border:1px solid #1f3a66;border-radius:10px;padding:14px;font-size:14.5px}\n.mag212-daily-20261110 .subscribe .why b{color:var(--cyan);display:block;margin-bottom:4px}\n.mag212-daily-20261110 .cols{display:grid;grid-template-columns:1fr 1fr;gap:22px}\n.mag212-daily-20261110 .endmark{display:inline-block;width:10px;height:10px;background:var(--red);margin-left:6px;border-radius:2px}\n@media (max-width:700px){\n .mag212-daily-20261110{padding:0;font-size:15.5px}\n .mag212-daily-20261110 .sheet{padding:24px 18px;border-radius:0;margin-bottom:10px}\n .mag212-daily-20261110 .cover-in{padding:28px 20px 0}\n .mag212-daily-20261110 .cover .mast{font-size:54px}\n .mag212-daily-20261110 .cover h1{font-size:32px}\n .mag212-daily-20261110 .daily{font-size:22px}\n .mag212-daily-20261110 .lines{grid-template-columns:1fr}\n .mag212-daily-20261110 .cover-foot{padding:12px 20px 18px}\n .mag212-daily-20261110 .ahead{padding:18px}\n .mag212-daily-20261110 .ahead h2{font-size:23px}\n .mag212-daily-20261110 .ahead .num{display:none}\n .mag212-daily-20261110 h2.sec{font-size:25px}\n .mag212-daily-20261110 .fig-scroll svg{min-width:660px}\n .mag212-daily-20261110 .fig-scroll::after{content:\"\u2190 swipe to see the whole diagram \u2192\";display:block;text-align:center;font-size:11.5px;color:#64748b;padding:4px 0;position:sticky;left:0}\n .mag212-daily-20261110 .cols{grid-template-columns:1fr}\n .mag212-daily-20261110 .runhead>span:last-child{display:none}\n .mag212-daily-20261110 .subscribe .mast{font-size:40px}\n}\n\n@media print{\n \n .mag212-daily-20261110{background:#fff;padding:0;font-size:9.1pt;line-height:1.4;-webkit-print-color-adjust:exact;print-color-adjust:exact}\n .mag212-daily-20261110 .sheet{box-shadow:none;border-radius:0;margin:0;max-width:none;padding:0;break-before:page}\n .mag212-daily-20261110 .sheet.first{break-before:auto}\n .mag212-daily-20261110 .sheet.flow{break-before:auto;margin-top:7mm}\n .mag212-daily-20261110 .cover,.mag212-daily-20261110 .subscribe{page:full;height:297mm;width:210mm;display:flex;flex-direction:column;overflow:hidden}\n .mag212-daily-20261110 .cover .art{flex:1 1 0;min-height:0;margin-top:5mm;overflow:hidden}\n .mag212-daily-20261110 .cover .art svg{width:100%;height:100%}\n .mag212-daily-20261110 .cover-in{flex:0 0 auto}\n .mag212-daily-20261110 .cover-foot{flex:0 0 auto}\n .mag212-daily-20261110 .subscribe{justify-content:center;padding:0 22mm}\n .mag212-daily-20261110 .runhead{display:none}\n .mag212-daily-20261110 .fig-scroll{overflow:visible}\n .mag212-daily-20261110 .t-wrap{overflow:visible}\n .mag212-daily-20261110 h3{break-after:avoid;break-inside:avoid}\n .mag212-daily-20261110 .ahead{break-after:avoid;break-inside:avoid}\n .mag212-daily-20261110 .glance,.mag212-daily-20261110 .call,.mag212-daily-20261110 .top3 .act,.mag212-daily-20261110 tr{break-inside:avoid}\n .mag212-daily-20261110 p,.mag212-daily-20261110 li{orphans:3;widows:3}\n .mag212-daily-20261110 .noprint{display:none}\n .mag212-daily-20261110 p{margin:.35em 0 .55em}\n .mag212-daily-20261110 h3{font-size:13pt;margin-top:.9em}\n .mag212-daily-20261110 h2.sec{font-size:20pt}\n .mag212-daily-20261110 .ahead{padding:12px 18px;margin-bottom:10px}\n .mag212-daily-20261110 .ahead h2{font-size:17pt;margin:3px 0 6px}\n .mag212-daily-20261110 .ahead .num{font-size:30pt}\n .mag212-daily-20261110 .glance{margin:4px 0 8px}\n .mag212-daily-20261110 .glance div{padding:5px 9px;font-size:8.6pt}\n .mag212-daily-20261110 figure{margin:8px 0 10px}\n .mag212-daily-20261110 figcaption{font-size:8.2pt;margin-top:3px}\n .mag212-daily-20261110 table{font-size:8.4pt}\n .mag212-daily-20261110 th{font-size:7.6pt;padding:4px 7px}\n .mag212-daily-20261110 td{padding:3px 7px}\n .mag212-daily-20261110 table.reg{font-size:7.6pt}\n .mag212-daily-20261110 table.reg td{padding:2px 5px}\n .mag212-daily-20261110 table.reg{table-layout:fixed}\n .mag212-daily-20261110 table.reg th:nth-child(1){width:4%} .mag212-daily-20261110 table.reg th:nth-child(2){width:43%} .mag212-daily-20261110 table.reg th:nth-child(3){width:12%}\n .mag212-daily-20261110 table.reg th:nth-child(4){width:12%} .mag212-daily-20261110 table.reg th:nth-child(5){width:13%} .mag212-daily-20261110 table.reg th:nth-child(6){width:16%}\n .mag212-daily-20261110 table.reg td{overflow-wrap:anywhere}\n .mag212-daily-20261110 .cmd pre{font-size:8.2pt;padding:7px 10px}\n .mag212-daily-20261110 .cmd-h,.mag212-daily-20261110 .cmd-f{font-size:7.6pt;padding:5px 10px}\n .mag212-daily-20261110 .call{padding:8px 12px;margin:8px 0}\n .mag212-daily-20261110 .steps>li{margin:.25em 0;padding-left:30px}\n .mag212-daily-20261110 .steps>li::before{width:20px;height:20px;font-size:9pt}\n .mag212-daily-20261110 li{margin:.15em 0}\n .mag212-daily-20261110 .lede{font-size:11pt}\n .mag212-daily-20261110 .top3 .act{padding:8px 12px}\n .mag212-daily-20261110 .top3 .act p{font-size:9pt}\n .mag212-daily-20261110 .toc li{padding:5px 0}\n .mag212-daily-20261110 .check li{padding:5px 8px 5px 34px}\n .mag212-daily-20261110 .check li::before{top:7px}\n .mag212-daily-20261110 a.s{font-size:.74em}\n}\n\n<\/style>\n<div class=\"mag212-daily-20261110\"><!-- ============================== COVER ============================== -->\n<section class=\"sheet cover first\" id=\"cover\" aria-label=\"Cover\">\n <div class=\"cover-in\">\n  <div class=\"mast\"><span class=\"m\">MAG<\/span><span class=\"n\">212<\/span> <span class=\"y\">CYBER<\/span><\/div>\n  <div class=\"sub\"><span class=\"daily\">DAILY<\/span><span class=\"edition\">DAILY CYBER INTELLIGENCE<\/span><\/div>\n  <div class=\"date\">Tuesday 10 November 2026<\/div>\n  <div class=\"cutoff\">Research cutoff: 06:15 PT (14:15 UTC) \u00b7 Stories from the 24 h before 06:00 PT, extended to 72 h where labelled<\/div>\n  <h1>Attackers walk in through <em>trusted doors<\/em><\/h1>\n  <p class=\"dek\">An exploited OpenSSH login bypass, a VPN flaw that skips SAML MFA, a vendor&#8217;s own AWS account turned on its customers, and signed malware from a real release pipeline.<\/p>\n  <ul class=\"lines\">\n   <li class=\"hot\"><b>OpenSSH &#8220;sshole&#8221;<\/b> exploited on Alpine\/musl \u00b7 KEV due 12 Nov<\/li>\n   <li class=\"hot\"><b>SonicWall SSL-VPN<\/b> SAML\/MFA bypass \u00b7 no workaround<\/li>\n   <li><b>Plex2Shell<\/b> hits Plex on QNAP NAS boxes<\/li>\n   <li><b>Qubole&#8217;s AWS account<\/b> used against its customers<\/li>\n   <li><b>bee-js &amp; Swarm Desktop<\/b> shipped signed malware<\/li>\n   <li><b>France names IRGC-linked group<\/b> in fridge sabotage<\/li>\n  <\/ul>\n <\/div>\n <div class=\"art\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 900 560\" preserveAspectRatio=\"xMidYMid slice\" role=\"img\" aria-labelledby=\"cover-t cover-d\" font-family=\"Inter, 'Segoe UI', Helvetica, Arial, sans-serif\"><title id=\"cover-t\">Cover illustration: an open door of light in a network<\/title><desc id=\"cover-d\">Conceptual artwork: a lit doorway at the centre of concentric network rings, symbolising attackers entering through trusted access.<\/desc><defs><marker id=\"cover-ar\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#22d3ee\"\/><\/marker><marker id=\"cover-arR\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#e5484d\"\/><\/marker><marker id=\"cover-arG\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#3fb950\"\/><\/marker><pattern id=\"cover-hatch\" width=\"8\" height=\"8\" patternUnits=\"userSpaceOnUse\" patternTransform=\"rotate(45)\"><rect width=\"8\" height=\"8\" fill=\"#fde7c4\"\/><line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"8\" stroke=\"#f5a524\" stroke-width=\"3\"\/><\/pattern><\/defs><rect width=\"900\" height=\"560\" fill=\"#0b1830\"\/><radialGradient id=\"cover-glow\" cx=\"62%\" cy=\"44%\" r=\"55%\"><stop offset=\"0\" stop-color=\"#1b3a6b\"\/><stop offset=\"1\" stop-color=\"#0b1830\"\/><\/radialGradient><rect width=\"900\" height=\"560\" fill=\"url(#cover-glow)\"\/><circle cx=\"560\" cy=\"250\" r=\"70\" fill=\"none\" stroke=\"#22d3ee\" stroke-opacity=\"0.85\" stroke-width=\"2\"\/><circle cx=\"560\" cy=\"250\" r=\"120\" fill=\"none\" stroke=\"#22d3ee\" stroke-opacity=\"0.71\" stroke-width=\"2\" stroke-dasharray=\"4 10\"\/><circle cx=\"560\" cy=\"250\" r=\"175\" fill=\"none\" stroke=\"#22d3ee\" stroke-opacity=\"0.57\" stroke-width=\"2\" stroke-dasharray=\"22 8\"\/><circle cx=\"560\" cy=\"250\" r=\"235\" fill=\"none\" stroke=\"#22d3ee\" stroke-opacity=\"0.43\" stroke-width=\"2\" stroke-dasharray=\"2 14\"\/><circle cx=\"560\" cy=\"250\" r=\"300\" fill=\"none\" stroke=\"#22d3ee\" stroke-opacity=\"0.29\" stroke-width=\"2\" stroke-dasharray=\"40 16\"\/><line x1=\"560\" y1=\"250\" x2=\"727\" y2=\"302\" stroke=\"#22d3ee\" stroke-opacity=\".18\" stroke-width=\"1.5\"\/><line x1=\"560\" y1=\"250\" x2=\"732\" y2=\"410\" stroke=\"#22d3ee\" stroke-opacity=\".18\" stroke-width=\"1.5\"\/><line x1=\"560\" y1=\"250\" x2=\"669\" y2=\"529\" stroke=\"#22d3ee\" stroke-opacity=\".18\" stroke-width=\"1.5\"\/><line x1=\"560\" y1=\"250\" x2=\"547\" y2=\"425\" stroke=\"#22d3ee\" stroke-opacity=\".18\" stroke-width=\"1.5\"\/><line x1=\"560\" y1=\"250\" x2=\"442\" y2=\"453\" stroke=\"#22d3ee\" stroke-opacity=\".18\" stroke-width=\"1.5\"\/><line x1=\"560\" y1=\"250\" x2=\"312\" y2=\"419\" stroke=\"#22d3ee\" stroke-opacity=\".18\" stroke-width=\"1.5\"\/><line x1=\"560\" y1=\"250\" x2=\"387\" y2=\"276\" stroke=\"#22d3ee\" stroke-opacity=\".18\" stroke-width=\"1.5\"\/><line x1=\"560\" y1=\"250\" x2=\"335\" y2=\"181\" stroke=\"#22d3ee\" stroke-opacity=\".18\" stroke-width=\"1.5\"\/><line x1=\"560\" y1=\"250\" x2=\"340\" y2=\"46\" stroke=\"#22d3ee\" stroke-opacity=\".18\" stroke-width=\"1.5\"\/><line x1=\"560\" y1=\"250\" x2=\"496\" y2=\"87\" stroke=\"#22d3ee\" stroke-opacity=\".18\" stroke-width=\"1.5\"\/><line x1=\"560\" y1=\"250\" x2=\"578\" y2=\"16\" stroke=\"#22d3ee\" stroke-opacity=\".18\" stroke-width=\"1.5\"\/><line x1=\"560\" y1=\"250\" x2=\"710\" y2=\"-10\" stroke=\"#22d3ee\" stroke-opacity=\".18\" stroke-width=\"1.5\"\/><line x1=\"560\" y1=\"250\" x2=\"705\" y2=\"152\" stroke=\"#22d3ee\" stroke-opacity=\".18\" stroke-width=\"1.5\"\/><line x1=\"560\" y1=\"250\" x2=\"792\" y2=\"215\" stroke=\"#22d3ee\" stroke-opacity=\".18\" stroke-width=\"1.5\"\/><circle cx=\"727\" cy=\"302\" r=\"6\" fill=\"#22d3ee\"\/><circle cx=\"732\" cy=\"410\" r=\"6\" fill=\"#22d3ee\"\/><circle cx=\"669\" cy=\"529\" r=\"9\" fill=\"#e5484d\"\/><circle cx=\"547\" cy=\"425\" r=\"6\" fill=\"#22d3ee\"\/><circle cx=\"442\" cy=\"453\" r=\"9\" fill=\"#3fb950\"\/><circle cx=\"312\" cy=\"419\" r=\"6\" fill=\"#22d3ee\"\/><circle cx=\"387\" cy=\"276\" r=\"6\" fill=\"#22d3ee\"\/><circle cx=\"335\" cy=\"181\" r=\"9\" fill=\"#e5484d\"\/><circle cx=\"340\" cy=\"46\" r=\"6\" fill=\"#22d3ee\"\/><circle cx=\"496\" cy=\"87\" r=\"9\" fill=\"#3fb950\"\/><circle cx=\"578\" cy=\"16\" r=\"6\" fill=\"#22d3ee\"\/><circle cx=\"710\" cy=\"-10\" r=\"9\" fill=\"#e5484d\"\/><circle cx=\"705\" cy=\"152\" r=\"6\" fill=\"#22d3ee\"\/><circle cx=\"792\" cy=\"215\" r=\"6\" fill=\"#22d3ee\"\/><rect x=\"512\" y=\"172\" width=\"96\" height=\"150\" rx=\"6\" fill=\"#0e2547\" stroke=\"#22d3ee\" stroke-width=\"3\"\/><path d=\"M512 172 L580 188 L580 338 L512 322 Z\" fill=\"#22d3ee\" fill-opacity=\".22\" stroke=\"#22d3ee\" stroke-width=\"2\"\/><circle cx=\"568\" cy=\"258\" r=\"5\" fill=\"#f5a524\"\/><path d=\"M580 188 L820 100 L820 440 L580 338 Z\" fill=\"#22d3ee\" fill-opacity=\".07\"\/><text fill-opacity=\"0.35\" x=\"30\" y=\"40\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"30\" y=\"62\" font-size=\"14\" fill=\"#3fb950\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"30\" y=\"84\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"30\" y=\"106\" font-size=\"14\" fill=\"#3fb950\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"30\" y=\"128\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"30\" y=\"150\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"30\" y=\"172\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"30\" y=\"194\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"30\" y=\"216\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"30\" y=\"238\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"30\" y=\"260\" font-size=\"14\" fill=\"#3fb950\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"52\" y=\"40\" font-size=\"14\" fill=\"#3fb950\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"52\" y=\"62\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"52\" y=\"84\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"52\" y=\"106\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"52\" y=\"128\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"52\" y=\"150\" font-size=\"14\" fill=\"#3fb950\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"52\" y=\"172\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"52\" y=\"194\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"52\" y=\"216\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"74\" y=\"40\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"74\" y=\"62\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"74\" y=\"84\" font-size=\"14\" fill=\"#3fb950\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"74\" y=\"106\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"74\" y=\"128\" font-size=\"14\" fill=\"#3fb950\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"74\" y=\"150\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"74\" y=\"172\" font-size=\"14\" fill=\"#3fb950\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"74\" y=\"194\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"74\" y=\"216\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"74\" y=\"238\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"74\" y=\"260\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"74\" y=\"282\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"96\" y=\"40\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"96\" y=\"62\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"96\" y=\"84\" font-size=\"14\" fill=\"#3fb950\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"96\" y=\"106\" font-size=\"14\" fill=\"#3fb950\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"96\" y=\"128\" font-size=\"14\" fill=\"#3fb950\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"96\" y=\"150\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"118\" y=\"40\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"118\" y=\"62\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"118\" y=\"84\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"118\" y=\"106\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"118\" y=\"128\" font-size=\"14\" fill=\"#3fb950\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"118\" y=\"150\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"118\" y=\"172\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"140\" y=\"40\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"140\" y=\"62\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"140\" y=\"84\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"140\" y=\"106\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"140\" y=\"128\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"140\" y=\"150\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"140\" y=\"172\" font-size=\"14\" fill=\"#3fb950\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"140\" y=\"194\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"140\" y=\"216\" font-size=\"14\" fill=\"#3fb950\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"140\" y=\"238\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"140\" y=\"260\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"162\" y=\"40\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"162\" y=\"62\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"162\" y=\"84\" font-size=\"14\" fill=\"#3fb950\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"162\" y=\"106\" font-size=\"14\" fill=\"#3fb950\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"162\" y=\"128\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"162\" y=\"150\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"162\" y=\"172\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"162\" y=\"194\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"162\" y=\"216\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"162\" y=\"238\" font-size=\"14\" fill=\"#3fb950\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"184\" y=\"40\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"184\" y=\"62\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"184\" y=\"84\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"184\" y=\"106\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"184\" y=\"128\" font-size=\"14\" fill=\"#3fb950\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"184\" y=\"150\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"184\" y=\"172\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"206\" y=\"40\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"206\" y=\"62\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"206\" y=\"84\" font-size=\"14\" fill=\"#3fb950\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"206\" y=\"106\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"228\" y=\"40\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"228\" y=\"62\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"228\" y=\"84\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"228\" y=\"106\" font-size=\"14\" fill=\"#3fb950\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"228\" y=\"128\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"228\" y=\"150\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"228\" y=\"172\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"228\" y=\"194\" font-size=\"14\" fill=\"#3fb950\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"250\" y=\"40\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"250\" y=\"62\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"250\" y=\"84\" font-size=\"14\" fill=\"#3fb950\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"250\" y=\"106\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"250\" y=\"128\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"250\" y=\"150\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"250\" y=\"172\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"250\" y=\"194\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"250\" y=\"216\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"250\" y=\"238\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"272\" y=\"40\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"272\" y=\"62\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"272\" y=\"84\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"272\" y=\"106\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"272\" y=\"128\" font-size=\"14\" fill=\"#3fb950\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"272\" y=\"150\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"272\" y=\"172\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"272\" y=\"194\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"294\" y=\"40\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"294\" y=\"62\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"294\" y=\"84\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"294\" y=\"106\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"294\" y=\"128\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"294\" y=\"150\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"316\" y=\"40\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"316\" y=\"62\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"316\" y=\"84\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"316\" y=\"106\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"316\" y=\"128\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"316\" y=\"150\" font-size=\"14\" fill=\"#3fb950\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"338\" y=\"40\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"338\" y=\"62\" font-size=\"14\" fill=\"#3fb950\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"338\" y=\"84\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"338\" y=\"106\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"338\" y=\"128\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"338\" y=\"150\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"338\" y=\"172\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"338\" y=\"194\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"338\" y=\"216\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"338\" y=\"238\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"338\" y=\"260\" font-size=\"14\" fill=\"#3fb950\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"338\" y=\"282\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"360\" y=\"40\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"360\" y=\"62\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"360\" y=\"84\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"360\" y=\"106\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"360\" y=\"128\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"360\" y=\"150\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"360\" y=\"172\" font-size=\"14\" fill=\"#3fb950\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"360\" y=\"194\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"360\" y=\"216\" font-size=\"14\" fill=\"#3fb950\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"382\" y=\"40\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"382\" y=\"62\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"382\" y=\"84\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"382\" y=\"106\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"382\" y=\"128\" font-size=\"14\" fill=\"#3fb950\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"404\" y=\"40\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"404\" y=\"62\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"404\" y=\"84\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"404\" y=\"106\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text fill-opacity=\"0.35\" x=\"404\" y=\"128\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">0<\/text><text fill-opacity=\"0.35\" x=\"404\" y=\"150\" font-size=\"14\" fill=\"#22d3ee\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">1<\/text><text x=\"890\" y=\"550\" font-size=\"12\" fill=\"#9fb3cf\" font-weight=\"400\" text-anchor=\"end\" font-style=\"italic\">Illustration: MAG212 CYBER original artwork (conceptual)<\/text><\/svg><\/div>\n <div class=\"cover-foot\"><span>By <b>El Mostafa Ouchen<\/b> \u00b7 <a href=\"https:\/\/cyber.mag212.com\">cyber.mag212.com<\/a><\/span><span>Free subscription: <a href=\"https:\/\/cyber.mag212.com\/subscribe-free\/\">cyber.mag212.com\/subscribe-free<\/a><\/span><span style=\"width:100%;font-size:11.5px;font-style:italic\">Cover art: conceptual illustration, MAG212 CYBER original. Not a real system.<\/span><\/div>\n<\/section>\n\n<!-- ============================== BRIEFING ============================== -->\n<section class=\"sheet\" id=\"briefing\">\n <div class=\"runhead\"><span class=\"mast\"><span class=\"m\">MAG<\/span><span class=\"n\">212<\/span> <span class=\"y\">CYBER<\/span><\/span><span>Daily \u00b7 10 Nov 2026<\/span><\/div>\n <h2 class=\"sec\">Executive briefing<\/h2>\n <p class=\"lede\"><span class=\"b a\">MAG212 analysis<\/span> Today&#8217;s thread is <b>trust that was granted once and never re-examined<\/b>. An OpenSSH bug lets attackers log in to Alpine and other musl-based Linux systems with an oversized password, and CISA gave federal agencies until <b>12 November<\/b> to fix it. A SonicWall SSL-VPN flaw skips SAML-enforced MFA. A data platform&#8217;s own AWS account was used to assume roles its customers had created for it. A real release pipeline signed and published malware. Most fixes are configuration discipline, not new tools.<\/p>\n\n <h3>The three actions that matter most today<\/h3>\n <div class=\"top3\">\n  <div class=\"act\"><div class=\"n\">1<\/div><div><h4>Turn off password SSH on Alpine\/musl hosts and containers, then patch and hunt<\/h4>\n   <p>Set <code>PasswordAuthentication no<\/code>, upgrade to your branch&#8217;s fixed <code>openssh<\/code> package, restart sshd, then search logs for <code>Accepted password for<\/code> on passwordless accounts. <a class=\"s\" href=\"https:\/\/alpinelinux.org\/posts\/2026-11-05-openssh-password-authentication-bypass\/\" target=\"_blank\" rel=\"noopener\">Alpine<\/a> <a class=\"s\" href=\"https:\/\/raw.githubusercontent.com\/cisagov\/kev-data\/develop\/known_exploited_vulnerabilities.json\" target=\"_blank\" rel=\"noopener\">CISA KEV<\/a><\/p><\/div><\/div>\n  <div class=\"act\"><div class=\"n\">2<\/div><div><h4>Upgrade every SonicWall firewall; close exposed NAS media ports<\/h4>\n   <p>SonicOS <b>7.3.4-7013<\/b> or <b>8.2.3-8015<\/b>, SAML SSL-VPN first (no workaround). On NAS boxes, stop forwarding Plex port 32400, update Plex and rotate passwords. <a class=\"s\" href=\"https:\/\/www.securityweek.com\/sonicwall-patches-exploited-sonicos-bug-that-weakens-vpn-logins\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek<\/a> <a class=\"s\" href=\"https:\/\/www.securityweek.com\/plex2shell-exploited-against-qnap-nas-users\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek<\/a><\/p><\/div><\/div>\n  <div class=\"act\"><div class=\"n\">3<\/div><div><h4>Audit vendor access into your cloud accounts<\/h4>\n   <p>List every IAM role that trusts a vendor account, starting with Qubole&#8217;s <code>805246085872<\/code>. Delete unused ones, add source-IP or VPC-endpoint conditions, review CloudTrail from 1 October. <a class=\"s\" href=\"https:\/\/thehackernews.com\/2026\/11\/hackers-exploit-quboles-trusted-aws.html\" target=\"_blank\" rel=\"noopener\">The Hacker News<\/a><\/p><\/div><\/div>\n <\/div>\n\n <h3>Story board<\/h3>\n <div class=\"t-wrap\"><table>\n  <thead><tr><th>#<\/th><th>Story<\/th><th>Date label<\/th><th>Exploited?<\/th><th>Who should care<\/th><\/tr><\/thead>\n  <tbody>\n   <tr><td>1<\/td><td><a href=\"#a1\">OpenSSH &#8220;sshole&#8221; auth bypass, CVE-2026-123158<\/a><\/td><td>KEV 9 Nov, due 12 Nov<\/td><td><span class=\"b x\">Yes<\/span><\/td><td>Linux\/container ops, network engineers, MSPs<\/td><\/tr>\n   <tr><td>2<\/td><td><a href=\"#a2\">SonicWall SSL-VPN SAML\/MFA bypass, CVE-2026-19868<\/a><\/td><td>6 Nov \u00b7 background, updated in window<\/td><td><span class=\"b x\">Yes<\/span><\/td><td>MSPs, schools, SMB firewall fleets<\/td><\/tr>\n   <tr><td>3<\/td><td><a href=\"#a3\">Plex2Shell on QNAP NAS<\/a><\/td><td>Reported 9 Nov<\/td><td><span class=\"b x\">Yes<\/span><\/td><td>Schools, SMBs, home offices<\/td><\/tr>\n   <tr><td>4<\/td><td><a href=\"#a4\">KEV batch: FreeSWITCH, GPUStack, IBM Faspex<\/a><\/td><td>KEV 9 Nov, due 12 Nov<\/td><td><span class=\"b x\">Yes<\/span><\/td><td>VoIP, AI\/GPU platforms, file transfer<\/td><\/tr>\n   <tr><td>5<\/td><td><a href=\"#a5\">Qubole&#8217;s AWS account used on customer roles<\/a><\/td><td>Reported 9 Nov<\/td><td><span class=\"b x\">Yes<\/span><\/td><td>Cloud teams, MSPs on AWS<\/td><\/tr>\n   <tr><td>6<\/td><td><a href=\"#a6\">France attributes fridge sabotage to IRGC-linked group<\/a><\/td><td>9\u201310 Nov<\/td><td><span class=\"b x\">Yes<\/span><\/td><td>Retail, cold chain, healthcare, OT<\/td><\/tr>\n   <tr><td>7<\/td><td><a href=\"#a7\">Frontline Education breach rises to 3.08M<\/a><\/td><td>Updated 9 Nov<\/td><td><span class=\"b u\">Breach<\/span><\/td><td>School IT, healthcare, retail<\/td><\/tr>\n   <tr><td>8<\/td><td><a href=\"#a8\">bee-js \/ Swarm Desktop supply-chain compromise<\/a><\/td><td>9 Nov<\/td><td><span class=\"b x\">Yes<\/span><\/td><td>Developers, DevOps, CI\/CD owners<\/td><\/tr>\n  <\/tbody><\/table><\/div>\n\n <div class=\"call pend\"><h4>\u23f3 Not out at the research cutoff, so not covered here<\/h4>\n  <p style=\"margin:0\"><b>Microsoft Patch Tuesday (10 Nov)<\/b> had not been published, so we give no zero-day or CVE counts; check the <a href=\"https:\/\/msrc.microsoft.com\/update-guide\" target=\"_blank\" rel=\"noopener\">MSRC Update Guide<\/a>. <b>Fortinet<\/b> said it would publish CVE IDs for critical FortiOS, FortiManager, FortiAnalyzer, FortiMail and FortiAuthenticator fixes by 10 November; publication had not been confirmed. <a class=\"s\" href=\"https:\/\/cybernews.com\/security\/fortinet-critical-flaws-patches-november-disclosure\/\" target=\"_blank\" rel=\"noopener\">Cybernews<\/a> Details: <a href=\"#watch\">Watch today<\/a>.<\/p><\/div>\n<\/section>\n\n<!-- ============================== CONTENTS ============================== -->\n<section class=\"sheet flow\" id=\"contents\">\n <div class=\"runhead\"><span class=\"mast\"><span class=\"m\">MAG<\/span><span class=\"n\">212<\/span> <span class=\"y\">CYBER<\/span><\/span><span>Daily \u00b7 10 Nov 2026<\/span><\/div>\n <h2 class=\"sec\">In this issue<\/h2>\n <ol class=\"toc\">\n  <li><span class=\"tn\">01<\/span><span><a href=\"#a1\">OpenSSH &#8220;sshole&#8221;: an oversized password opens the door<\/a><span class=\"ts\">Alpine\/musl sshd without PAM \u00b7 KEV due 12 Nov<\/span><\/span><span class=\"pg\">4<\/span><\/li>\n  <li><span class=\"tn\">02<\/span><span><a href=\"#a2\">SonicWall SSL-VPN flaw sidesteps SAML MFA<\/a><span class=\"ts\">SonicOS Gen7\/Gen8 \u00b7 no workaround<\/span><\/span><span class=\"pg\">6<\/span><\/li>\n  <li><span class=\"tn\">03<\/span><span><a href=\"#a3\">Plex2Shell hits Plex Media Server on QNAP NAS<\/a><span class=\"ts\">Four unauthenticated RCE flaws \u00b7 port 32400<\/span><\/span><span class=\"pg\">8<\/span><\/li>\n  <li><span class=\"tn\">04<\/span><span><a href=\"#a4\">Three more on a three-day KEV clock<\/a><span class=\"ts\">FreeSWITCH \u00b7 GPUStack \u00b7 IBM Aspera Faspex<\/span><\/span><span class=\"pg\">9<\/span><\/li>\n  <li><span class=\"tn\">05<\/span><span><a href=\"#a5\">Qubole&#8217;s own AWS account turned on its customers<\/a><span class=\"ts\">Cross-account IAM role abuse \u00b7 published IOCs<\/span><\/span><span class=\"pg\">10<\/span><\/li>\n  <li><span class=\"tn\">06<\/span><span><a href=\"#a6\">France blames Iran&#8217;s IRGC for heating supermarket fridges<\/a><span class=\"ts\">Refrigeration controllers become a nation-state OT issue<\/span><\/span><span class=\"pg\">12<\/span><\/li>\n  <li><span class=\"tn\">07<\/span><span><a href=\"#a7\">Frontline Education breach doubles to 3.08 million<\/a><span class=\"ts\">Plus Amplifon and Revolve count updates<\/span><\/span><span class=\"pg\">14<\/span><\/li>\n  <li><span class=\"tn\">08<\/span><span><a href=\"#a8\">Signed, provenanced and malicious: bee-js and Swarm Desktop<\/a><span class=\"ts\">Hijacked maintainer and release-bot accounts<\/span><\/span><span class=\"pg\">15<\/span><\/li>\n  <li><span class=\"tn\">\u25c6<\/span><span><a href=\"#desk\">Defender&#8217;s Action Desk<\/a><span class=\"ts\">Prioritised checklist \u00b7 KEV deadlines this week \u00b7 watch today<\/span><\/span><span class=\"pg\">17<\/span><\/li>\n  <li><span class=\"tn\">\u25c6<\/span><span><a href=\"#lesson\">Awareness lesson: &#8220;The breach letter is the bait&#8221;<\/a><span class=\"ts\">For employees and leaders \u00b7 briefly noted<\/span><\/span><span class=\"pg\">18<\/span><\/li>\n  <li><span class=\"tn\">\u25c6<\/span><span><a href=\"#sources\">Source register<\/a><span class=\"ts\">Every source, with whether we could open it<\/span><\/span><span class=\"pg\">20<\/span><\/li>\n <\/ol>\n\n <h3>How to read this issue<\/h3>\n <div class=\"legend\">\n  <div><span class=\"b c\">Confirmed<\/span> stated by a primary source: vendor, researcher or government.<\/div>\n  <div><span class=\"b r\">Reported<\/span> from a secondary outlet, or a claim that outlet attributes to someone.<\/div>\n  <div><span class=\"b a\">MAG212 analysis<\/span> our editorial judgement, not a source claim.<\/div>\n  <div><span class=\"b u\">Unknown<\/span> not established by any source we read.<\/div>\n <\/div>\n <p class=\"small muted\">Links marked <a class=\"s\" href=\"#sources\">like this<\/a> point to the source for the claim beside them. Diagrams are original MAG212 CYBER work built from those sources; none is a screenshot, photo or live data. Commands come from vendor documentation and were <b>not tested<\/b> by MAG212 CYBER.<\/p>\n\n <div class=\"call info\"><h4>Evidence limits today<\/h4>\n  <ul class=\"small\" style=\"margin-bottom:0\">\n   <li>cisa.gov and the NVD API were unreachable during research. KEV data comes from CISA&#8217;s official GitHub mirror, catalog <b>v2026.11.09<\/b>. <a class=\"s\" href=\"https:\/\/raw.githubusercontent.com\/cisagov\/kev-data\/develop\/known_exploited_vulnerabilities.json\" target=\"_blank\" rel=\"noopener\">CISA KEV JSON<\/a><\/li>\n   <li><b>No NVD CVSS score was verified<\/b> for any CVE in this issue; scores shown are vendor or reported scores.<\/li>\n   <li>We could not open the SonicWall PSIRT page, the FreeSWITCH GitHub advisory, Wiz&#8217;s Qubole post, Apiiro&#8217;s post or the IC3 refrigeration advisory PDF. Those details rest on the trade-press reports cited.<\/li>\n  <\/ul><\/div>\n<\/section>\n\n<!-- ============================== A1 OPENSSH ============================== -->\n<section class=\"sheet flow\" id=\"a1\">\n <div class=\"runhead\"><span class=\"mast\"><span class=\"m\">MAG<\/span><span class=\"n\">212<\/span> <span class=\"y\">CYBER<\/span><\/span><span>Vulnerabilities \u00b7 Linux &amp; containers<\/span><\/div>\n <header class=\"ahead\"><span class=\"num\">01<\/span><div class=\"kick\">Actively exploited \u00b7 Linux &amp; containers<\/div>\n  <h2>OpenSSH &#8220;sshole&#8221;: an oversized password opens the door<\/h2>\n  <div class=\"chips\"><span class=\"chip hot\">Exploited<\/span><span class=\"chip hot\">KEV due 12 Nov<\/span><span class=\"chip\">Fix 5 Nov \u00b7 KEV 9 Nov<\/span><span class=\"chip\">Evidence: strong<\/span><\/div><\/header>\n <div class=\"glance\">\n  <div><b>CVE<\/b>CVE-2026-123158<\/div><div><b>Affected<\/b>sshd on musl libc, no PAM (Alpine default)<\/div>\n  <div><b>Fixed<\/b>OpenSSH 10.6p2 \u00b7 Alpine packages below<\/div><div><b>CVSS<\/b>Not verified<\/div>\n  <div><b>KEV<\/b>Added 9 Nov \u00b7 due 12 Nov \u00b7 forensic triage<\/div><div><b>Not affected<\/b>glibc distros, PAM setups, Dropbear (reported)<\/div>\n <\/div>\n\n <h3>What happened<\/h3>\n <p><span class=\"b c\">Confirmed<\/span> OpenSSH 10.6p2, released on <b>5 November<\/b>, includes a &#8220;critical security workaround&#8221; for Linux systems that use musl libc with PAM disabled. The release notes say the root cause is outside sshd but can be avoided there, and do not cite a CVE. <a class=\"s\" href=\"https:\/\/www.openssh.org\/releasenotes.html\" target=\"_blank\" rel=\"noopener\">OpenSSH<\/a> Alpine published its advisory the same day. <a class=\"s\" href=\"https:\/\/alpinelinux.org\/posts\/2026-11-05-openssh-password-authentication-bypass\/\" target=\"_blank\" rel=\"noopener\">Alpine<\/a> On <b>9 November<\/b> CISA added <b>CVE-2026-123158<\/b> to the Known Exploited Vulnerabilities (KEV) catalog with a <b>12 November<\/b> due date and a forensic-triage flag. <a class=\"s\" href=\"https:\/\/raw.githubusercontent.com\/cisagov\/kev-data\/develop\/known_exploited_vulnerabilities.json\" target=\"_blank\" rel=\"noopener\">CISA KEV<\/a><\/p>\n <p><span class=\"b r\">Reported<\/span> Previdian saw a first exploitation attempt less than nine hours after the CVE was published and confirmed root access on an Alpine honeypot. <a class=\"s\" href=\"https:\/\/www.helpnetsecurity.com\/?p=390599\" target=\"_blank\" rel=\"noopener\">Help Net Security<\/a> SecurityWeek reported on 9 November that botnets and cryptominers are exploiting it. <a class=\"s\" href=\"https:\/\/www.securityweek.com\/hackers-exploiting-sshole-authentication-bypass-in-openssh\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek<\/a> OpenSSH&#8217;s Damien Miller told affected users to set <code>PasswordAuthentication=no<\/code> or disable SSH &#8220;IMMEDIATELY&#8221;. <a class=\"s\" href=\"https:\/\/www.helpnetsecurity.com\/?p=390599\" target=\"_blank\" rel=\"noopener\">Help Net Security<\/a><\/p>\n\n <h3>Who is affected<\/h3>\n <p><span class=\"b c\">Confirmed<\/span> Per Alpine, a system is exploitable only when <b>all<\/b> of the conditions in the diagram hold. You are <b>not<\/b> affected with <code>openssh-server-pam<\/code> and <code>UsePAM yes<\/code>, with <code>PasswordAuthentication no<\/code>, on locked (<code>!<\/code>) accounts, with no <code>$<\/code>-style hashes on the host, or in containers that don&#8217;t run sshd. Root is protected by the default <code>PermitRootLogin prohibit-password<\/code>, unless another account can escalate, for example through doas. Affected Alpine tiny-cloud images run from 3.18.11 to 3.24.3; fixed point releases are 3.21.10, 3.22.8, 3.23.8 and 3.24.4. <a class=\"s\" href=\"https:\/\/alpinelinux.org\/posts\/2026-11-05-openssh-password-authentication-bypass\/\" target=\"_blank\" rel=\"noopener\">Alpine<\/a><\/p>\n <p><span class=\"b r\">Reported<\/span> The researcher names OpenWrt, Buildroot, Yocto and &#8220;a lot of the docker images&#8221; as other musl-based systems. Alpine AWS and Azure tiny-cloud images 3.18.11\u20133.24.3 ship a default <code>alpine<\/code> user with passwordless doas. Debian, Ubuntu, Fedora, Dropbear and OpenBSD are reported unaffected. <a class=\"s\" href=\"https:\/\/www.helpnetsecurity.com\/?p=390599\" target=\"_blank\" rel=\"noopener\">Help Net Security<\/a><\/p>\n <p><span class=\"b a\">MAG212 analysis<\/span> The main exposure is Alpine-based containers and VMs running sshd, plus embedded builds. Check each network vendor for OpenWrt-based routers and access points rather than assuming either way; many use Dropbear. We found no network-vendor advisory.<\/p>\n\n <figure><div class=\"fig-scroll\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 900 330\" role=\"img\" aria-labelledby=\"openssh-t openssh-d\" font-family=\"Inter, 'Segoe UI', Helvetica, Arial, sans-serif\"><title id=\"openssh-t\">How the OpenSSH sshole bypass works<\/title><desc id=\"openssh-d\">Five-step chain: oversized password, crypt with borrowed salt, musl crypt failure returning an asterisk, match against an asterisk password field, login accepted; plus the five required conditions and the fix.<\/desc><defs><marker id=\"openssh-ar\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#22d3ee\"\/><\/marker><marker id=\"openssh-arR\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#e5484d\"\/><\/marker><marker id=\"openssh-arG\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#3fb950\"\/><\/marker><pattern id=\"openssh-hatch\" width=\"8\" height=\"8\" patternUnits=\"userSpaceOnUse\" patternTransform=\"rotate(45)\"><rect width=\"8\" height=\"8\" fill=\"#fde7c4\"\/><line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"8\" stroke=\"#f5a524\" stroke-width=\"3\"\/><\/pattern><\/defs><rect width=\"900\" height=\"330\" fill=\"#f7fafc\"\/><rect x=\"12\" y=\"30\" width=\"162\" height=\"128\" rx=\"10\" fill=\"#eef6fb\" stroke=\"#22d3ee\" stroke-width=\"2\"\/><text x=\"24\" y=\"56\" font-size=\"15\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">1 \u00b7 Attacker<\/text><text x=\"24\" y=\"80\" font-size=\"14\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">sends a password of<\/text><text x=\"24\" y=\"100\" font-size=\"14\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">257\u20131,024 bytes<\/text><line x1=\"176\" y1=\"94\" x2=\"190\" y2=\"94\" stroke=\"#22d3ee\" stroke-width=\"2.5\" marker-end=\"url(#openssh-ar)\"\/><rect x=\"190\" y=\"30\" width=\"162\" height=\"128\" rx=\"10\" fill=\"#eef6fb\" stroke=\"#22d3ee\" stroke-width=\"2\"\/><text x=\"202\" y=\"56\" font-size=\"15\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">2 \u00b7 sshd, no PAM<\/text><text x=\"202\" y=\"80\" font-size=\"14\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">hashes it with crypt(),<\/text><text x=\"202\" y=\"100\" font-size=\"14\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">borrowing another<\/text><text x=\"202\" y=\"120\" font-size=\"14\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">account&#x27;s salt<\/text><line x1=\"354\" y1=\"94\" x2=\"368\" y2=\"94\" stroke=\"#22d3ee\" stroke-width=\"2.5\" marker-end=\"url(#openssh-ar)\"\/><rect x=\"368\" y=\"30\" width=\"162\" height=\"128\" rx=\"10\" fill=\"#eef6fb\" stroke=\"#22d3ee\" stroke-width=\"2\"\/><text x=\"380\" y=\"56\" font-size=\"15\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">3 \u00b7 musl crypt()<\/text><text x=\"380\" y=\"80\" font-size=\"14\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">fails on keys over<\/text><text x=\"380\" y=\"100\" font-size=\"14\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">256 bytes and<\/text><text x=\"380\" y=\"120\" font-size=\"14\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">returns  *<\/text><line x1=\"532\" y1=\"94\" x2=\"546\" y2=\"94\" stroke=\"#22d3ee\" stroke-width=\"2.5\" marker-end=\"url(#openssh-ar)\"\/><rect x=\"546\" y=\"30\" width=\"162\" height=\"128\" rx=\"10\" fill=\"#eef6fb\" stroke=\"#22d3ee\" stroke-width=\"2\"\/><text x=\"558\" y=\"56\" font-size=\"15\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">4 \u00b7 Comparison<\/text><text x=\"558\" y=\"80\" font-size=\"14\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">*  equals the target<\/text><text x=\"558\" y=\"100\" font-size=\"14\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">account&#x27;s stored<\/text><text x=\"558\" y=\"120\" font-size=\"14\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">password field  *<\/text><line x1=\"710\" y1=\"94\" x2=\"724\" y2=\"94\" stroke=\"#22d3ee\" stroke-width=\"2.5\" marker-end=\"url(#openssh-ar)\"\/><rect x=\"724\" y=\"30\" width=\"162\" height=\"128\" rx=\"10\" fill=\"#fde8e8\" stroke=\"#e5484d\" stroke-width=\"2\"\/><text x=\"736\" y=\"56\" font-size=\"15\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">5 \u00b7 Login accepted<\/text><text x=\"736\" y=\"80\" font-size=\"14\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">log line:<\/text><text x=\"736\" y=\"100\" font-size=\"14\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">Accepted password<\/text><text x=\"736\" y=\"120\" font-size=\"14\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">for &lt;user&gt;<\/text><text x=\"12\" y=\"192\" font-size=\"15\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">Exploitable only when ALL five conditions hold (Alpine advisory):<\/text><rect x=\"12\" y=\"206\" width=\"286\" height=\"32\" rx=\"7\" fill=\"#fff\" stroke=\"#cbd5e1\"\/><text x=\"22\" y=\"227\" font-size=\"14\" fill=\"#1e293b\" font-weight=\"400\" text-anchor=\"start\">\u2713  sshd built without PAM, or UsePAM no<\/text><rect x=\"308\" y=\"206\" width=\"286\" height=\"32\" rx=\"7\" fill=\"#fff\" stroke=\"#cbd5e1\"\/><text x=\"318\" y=\"227\" font-size=\"14\" fill=\"#1e293b\" font-weight=\"400\" text-anchor=\"start\">\u2713  PasswordAuthentication yes (default)<\/text><rect x=\"604\" y=\"206\" width=\"286\" height=\"32\" rx=\"7\" fill=\"#fff\" stroke=\"#cbd5e1\"\/><text x=\"614\" y=\"227\" font-size=\"14\" fill=\"#1e293b\" font-weight=\"400\" text-anchor=\"start\">\u2713  a target account&#x27;s password field is  *<\/text><rect x=\"12\" y=\"246\" width=\"286\" height=\"32\" rx=\"7\" fill=\"#fff\" stroke=\"#cbd5e1\"\/><text x=\"22\" y=\"267\" font-size=\"14\" fill=\"#1e293b\" font-weight=\"400\" text-anchor=\"start\">\u2713  another account has a $5$ or $6$ hash<\/text><rect x=\"308\" y=\"246\" width=\"286\" height=\"32\" rx=\"7\" fill=\"#fff\" stroke=\"#cbd5e1\"\/><text x=\"318\" y=\"267\" font-size=\"14\" fill=\"#1e293b\" font-weight=\"400\" text-anchor=\"start\">\u2713  password of 257\u20131,024 bytes<\/text><rect x=\"604\" y=\"246\" width=\"284\" height=\"32\" rx=\"7\" fill=\"#3fb950\"\/><text x=\"614\" y=\"267\" font-size=\"14\" fill=\"#ffffff\" font-weight=\"700\" text-anchor=\"start\">Fix: PasswordAuthentication no + patch<\/text><text x=\"12\" y=\"318\" font-size=\"13\" fill=\"#475569\" font-weight=\"400\" text-anchor=\"start\" font-style=\"italic\">Steps 1\u20135 from the Alpine advisory; step 1 size range and log string as published. Not a test result.<\/text><\/svg><\/div><figcaption><b>Figure 1 \u00b7 How the sshole bypass works.<\/b> The five-step chain and the five conditions that must all be true. Setting PasswordAuthentication no stops step 1 from reaching the vulnerable code path.<span class=\"credit\">MAG212 CYBER original diagram, based on the Alpine Linux advisory (5 Nov 2026).<\/span><\/figcaption><\/figure>\n\n <h3>How the attack works<\/h3>\n <p><span class=\"b c\">Confirmed<\/span> Without PAM, sshd hashes each password attempt with <code>crypt()<\/code>. If an account&#8217;s stored field is too short to hold a salt, sshd borrows another account&#8217;s salt. musl&#8217;s <code>crypt()<\/code> fails on keys longer than 256 bytes and returns <code>*<\/code>, which matches a stored <code>*<\/code> password field, so the login succeeds. <a class=\"s\" href=\"https:\/\/alpinelinux.org\/posts\/2026-11-05-openssh-password-authentication-bypass\/\" target=\"_blank\" rel=\"noopener\">Alpine<\/a> <span class=\"b r\">Reported<\/span> On Previdian&#8217;s honeypot the attacker ran <code>id<\/code>, <code>uname<\/code> and <code>hostname<\/code> after logging in. <a class=\"s\" href=\"https:\/\/www.helpnetsecurity.com\/?p=390599\" target=\"_blank\" rel=\"noopener\">Help Net Security<\/a> <span class=\"b u\">Unknown<\/span> CVSS score, worldwide exposure, and payloads beyond botnet and cryptominer activity.<\/p>\n\n <h3>What to look for<\/h3>\n <ul>\n  <li><span class=\"b c\">Vendor guidance<\/span> In <code>\/var\/log\/messages<\/code>, <code>Accepted password for<\/code> on accounts that have no password, such as <code>alpine<\/code>, <code>root<\/code> and key-only users. Also review doas use, newly created users and <code>authorized_keys<\/code> changes. <a class=\"s\" href=\"https:\/\/alpinelinux.org\/posts\/2026-11-05-openssh-password-authentication-bypass\/\" target=\"_blank\" rel=\"noopener\">Alpine<\/a><\/li>\n  <li><span class=\"b r\">Single honeypot indicator<\/span> All eight attempts Previdian saw came from <code>89.116.89[.]18<\/code>. Treat it as one data point, not a blocklist. <a class=\"s\" href=\"https:\/\/www.helpnetsecurity.com\/?p=390599\" target=\"_blank\" rel=\"noopener\">Help Net Security<\/a><\/li>\n  <li><span class=\"b a\">MAG212 analysis<\/span> False positives: legitimate password logins on accounts that do have a password. The signal is a successful password login on an account whose password field is <code>*<\/code>.<\/li>\n <\/ul>\n\n <h3>Investigate, contain and remediate (in order)<\/h3>\n <ol class=\"steps\">\n  <li><b>Stop the bleeding.<\/b> If you can&#8217;t patch now, disable password authentication (panel 2) or disable SSH on the system. <a class=\"s\" href=\"https:\/\/alpinelinux.org\/posts\/2026-11-05-openssh-password-authentication-bypass\/\" target=\"_blank\" rel=\"noopener\">Alpine<\/a><\/li>\n  <li><b>Patch<\/b> to your branch&#8217;s fixed package (table) or upstream OpenSSH 10.6p2.<\/li>\n  <li><b>Restart sshd.<\/b> Alpine notes the upgrade does not restart a running sshd.<\/li>\n  <li><b>Hunt<\/b> with the log and account checks above on every host that met the conditions.<\/li>\n  <li><b>Decide on compromise.<\/b> &#8220;If a login cannot be ruled out, treat the machine as compromised.&#8221; <a class=\"s\" href=\"https:\/\/alpinelinux.org\/posts\/2026-11-05-openssh-password-authentication-bypass\/\" target=\"_blank\" rel=\"noopener\">Alpine<\/a> <span class=\"b a\">MAG212 analysis<\/span> For containers and cloud images, rebuild from a patched image and rotate credentials the host held.<\/li>\n <\/ol>\n\n <div class=\"t-wrap\"><table>\n  <thead><tr><th>Alpine branch<\/th><th>Fixed <code style=\"background:none;color:#fff\">openssh<\/code> package<\/th><th>Alpine branch<\/th><th>Fixed package<\/th><\/tr><\/thead>\n  <tbody>\n   <tr><td>edge<\/td><td><code>10.6_p2-r0<\/code><\/td><td>3.20<\/td><td><code>9.7_p1-r6<\/code><\/td><\/tr>\n   <tr><td>3.24<\/td><td><code>10.3_p1-r2<\/code><\/td><td>3.19<\/td><td><code>9.6_p1-r3<\/code><\/td><\/tr>\n   <tr><td>3.23<\/td><td><code>10.2_p1-r1<\/code><\/td><td>3.18<\/td><td><code>9.3_p2-r4<\/code><\/td><\/tr>\n   <tr><td>3.22<\/td><td><code>10.0_p1-r11<\/code><\/td><td>3.17<\/td><td><code>9.1_p1-r7<\/code><\/td><\/tr>\n   <tr><td>3.21<\/td><td><code>9.9_p2-r1<\/code><\/td><td>3.16<\/td><td><code>9.0_p1-r6<\/code><\/td><\/tr>\n  <\/tbody><\/table>\n  <p class=\"small muted\" style=\"margin:4px 0 0\">Source: <a href=\"https:\/\/alpinelinux.org\/posts\/2026-11-05-openssh-password-authentication-bypass\/\" target=\"_blank\" rel=\"noopener\">Alpine advisory, 5 Nov 2026<\/a>.<\/p><\/div>\n\n <div class=\"cmd\"><div class=\"cmd-h\"><b>Panel 1 \u00b7 Patch<\/b><span>OS: Alpine Linux<\/span><span>Shell: sh (ash)<\/span><span>Privileges: root<\/span><span class=\"chg\">CHANGE<\/span><\/div>\n<pre><span class=\"cm\"># Upgrade all packages, including openssh<\/span>\napk upgrade -U -a\n<span class=\"cm\"># Restart sshd; the upgrade does not do it for you<\/span>\nrc-service sshd restart<\/pre>\n  <div class=\"cmd-f\">Interpretation: after the restart, the installed openssh should match the table. Commands not tested by MAG212 CYBER; syntax from the <a href=\"https:\/\/alpinelinux.org\/posts\/2026-11-05-openssh-password-authentication-bypass\/\" style=\"color:#7dd3fc\" target=\"_blank\" rel=\"noopener\">Alpine advisory<\/a>.<\/div><\/div>\n\n <div class=\"cmd\"><div class=\"cmd-h\"><b>Panel 2 \u00b7 Workaround<\/b><span>OS: Alpine Linux<\/span><span>Shell: sh (ash)<\/span><span>Privileges: root<\/span><span class=\"chg\">CHANGE<\/span><\/div>\n<pre><span class=\"cm\"># Create \/etc\/ssh\/sshd_config.d\/00-no-passwords.conf containing the line:<\/span>\nPasswordAuthentication no\n<span class=\"cm\"># Validate the config; restart only if validation passes<\/span>\nsshd -t &amp;&amp; rc-service sshd restart<\/pre>\n  <div class=\"cmd-f\">Make sure key-based access works before you rely on this, or you may lock yourself out. Not tested by MAG212 CYBER; syntax from the <a href=\"https:\/\/alpinelinux.org\/posts\/2026-11-05-openssh-password-authentication-bypass\/\" style=\"color:#7dd3fc\" target=\"_blank\" rel=\"noopener\">Alpine advisory<\/a>.<\/div><\/div>\n\n <div class=\"cmd\"><div class=\"cmd-h\"><b>Panel 3 \u00b7 Verify<\/b><span>OS: Alpine Linux<\/span><span>Shell: sh (ash)<\/span><span>Privileges: root<\/span><span class=\"ro\">READ-ONLY<\/span><\/div>\n<pre><span class=\"cm\"># Show the effective setting sshd is using<\/span>\nsshd -T | grep -i passwordauthentication<\/pre>\n  <div class=\"cmd-f\">Expected where the workaround is applied: <code style=\"background:#1e293b;color:#e2e8f0\">passwordauthentication no<\/code> (illustrative output). Not tested by MAG212 CYBER; syntax from the <a href=\"https:\/\/alpinelinux.org\/posts\/2026-11-05-openssh-password-authentication-bypass\/\" style=\"color:#7dd3fc\" target=\"_blank\" rel=\"noopener\">Alpine advisory<\/a>.<\/div><\/div>\n\n <h3>Verify recovery<\/h3>\n <p>Confirm the installed <code>openssh<\/code> package matches the table for your branch, that sshd was restarted after the upgrade, and that <code>sshd -T<\/code> reports password authentication off wherever you applied the workaround. Re-run the log check to be sure no new <code>Accepted password for<\/code> entries appear on passwordless accounts.<\/p>\n\n <h3>Prevention and awareness<\/h3>\n <p><span class=\"b a\">MAG212 analysis<\/span> Make key-only SSH the baseline, and don&#8217;t run sshd in containers that don&#8217;t need it. Container base images inherit their OS&#8217;s authentication quirks. <span class=\"b r\">Reported<\/span> Previdian warns that proof-of-concept code on GitHub is unverified and could contain malware; don&#8217;t run it to &#8220;test&#8221; production. <a class=\"s\" href=\"https:\/\/www.helpnetsecurity.com\/?p=390599\" target=\"_blank\" rel=\"noopener\">Help Net Security<\/a><span class=\"endmark\"><\/span><\/p>\n<\/section>\n\n<!-- ============================== A2 SONICWALL ============================== -->\n<section class=\"sheet flow\" id=\"a2\">\n <div class=\"runhead\"><span class=\"mast\"><span class=\"m\">MAG<\/span><span class=\"n\">212<\/span> <span class=\"y\">CYBER<\/span><\/span><span>Networking \u00b7 Remote access<\/span><\/div>\n <header class=\"ahead\"><span class=\"num\">02<\/span><div class=\"kick\">Exploited \u00b7 Remote access VPN<\/div>\n  <h2>SonicWall SSL-VPN flaw sidesteps SAML-enforced MFA<\/h2>\n  <div class=\"chips\"><span class=\"chip hot\">Exploited (KEV)<\/span><span class=\"chip warn\">No workaround<\/span><span class=\"chip\">Advisory 6 Nov \u00b7 background, updated in window<\/span><span class=\"chip\">Evidence: medium\u2013strong<\/span><\/div><\/header>\n <div class=\"glance\">\n  <div><b>CVE<\/b>CVE-2026-19868 (CWE-308)<\/div><div><b>Affected<\/b>Gen7 \u2264 7.3.3-7015 \u00b7 Gen8 \u2264 8.2.2-8015<\/div>\n  <div><b>Fixed<\/b>7.3.4-7013 \u00b7 8.2.3-8015<\/div><div><b>CVSS<\/b>7.1 vendor (7.5 CISA-ADP, secondary)<\/div>\n  <div><b>Condition<\/b>SSL-VPN set to SAML authentication<\/div><div><b>KEV<\/b>Added 6 Nov \u00b7 due 20 Nov<\/div>\n <\/div>\n\n <h3>What happened<\/h3>\n <p><span class=\"b c\">Confirmed<\/span> CISA added <b>CVE-2026-19868<\/b>, a SonicOS SSL-VPN &#8220;use of single-factor authentication&#8221; flaw, to KEV on <b>6 November<\/b> with a <b>20 November<\/b> due date. <a class=\"s\" href=\"https:\/\/raw.githubusercontent.com\/cisagov\/kev-data\/develop\/known_exploited_vulnerabilities.json\" target=\"_blank\" rel=\"noopener\">CISA KEV<\/a> <span class=\"b r\">Reported<\/span> SonicWall advisory SNWLID-2026-0014 fixes seven SonicOS flaws. SonicWall says it &#8220;investigated a report of potential exploitation&#8221; of this one, without details, and scores it 7.1. <a class=\"s\" href=\"https:\/\/bleepingcomputer.com\/news\/security\/sonicwall-warns-of-new-ssl-vpn-mfa-bypass-flaw-exploited-in-attacks\" target=\"_blank\" rel=\"noopener\">BleepingComputer<\/a> <a class=\"s\" href=\"https:\/\/www.securityweek.com\/sonicwall-patches-exploited-sonicos-bug-that-weakens-vpn-logins\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek<\/a> CISA&#8217;s flagging was covered on 9 November. <a class=\"s\" href=\"https:\/\/thehackernews.com\/2026\/11\/cisa-flags-sonicwall-sonicos-mfa-bypass.html\" target=\"_blank\" rel=\"noopener\">The Hacker News<\/a><\/p>\n\n <h3>Who is affected<\/h3>\n <p><span class=\"b r\">Reported<\/span> Gen7 TZ\/NSa\/NSsp\/NSv on SonicOS 7.3.3-7015 or older, and Gen8 TZ\/NSa\/NSv on 8.2.2-8015 or older, but only where <b>SSL-VPN is configured for SAML authentication<\/b>. There is no workaround. <a class=\"s\" href=\"https:\/\/www.securityweek.com\/sonicwall-patches-exploited-sonicos-bug-that-weakens-vpn-logins\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek<\/a> The same advisory fixes two management-interface flaws rated 8.8 (CVE-2026-107155, CVE-2026-107154), a pre-auth SSL-VPN heap overflow causing denial of service (CVE-2026-82308, 7.5), two TACACS+ issues (5.9 each) and weak password hashing on virtual appliances (5.2); their exploitation status is not stated. <a class=\"s\" href=\"https:\/\/www.oflight.co.jp\/en\/columns\/vulnerability-digest-2026-11-07\" target=\"_blank\" rel=\"noopener\">Oflight digest<\/a><\/p>\n <p><span class=\"b a\">MAG212 analysis<\/span> MSPs and schools that put SSL-VPN behind Entra ID or Google SSO through SAML are directly exposed. Fleets without SAML still need the update because of the 8.8 management-interface flaws.<\/p>\n\n <figure><div class=\"fig-scroll\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 900 300\" role=\"img\" aria-labelledby=\"sonicwall-t sonicwall-d\" font-family=\"Inter, 'Segoe UI', Helvetica, Arial, sans-serif\"><title id=\"sonicwall-t\">SonicWall SSL-VPN: intended SAML path versus the alternate-method bypass<\/title><desc id=\"sonicwall-d\">A user normally reaches the SonicOS SSL-VPN through a SAML identity provider that enforces MFA; with CVE-2026-19868, valid credentials for an alternate authentication method reach the VPN without SAML or MFA.<\/desc><defs><marker id=\"sonicwall-ar\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#22d3ee\"\/><\/marker><marker id=\"sonicwall-arR\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#e5484d\"\/><\/marker><marker id=\"sonicwall-arG\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#3fb950\"\/><\/marker><pattern id=\"sonicwall-hatch\" width=\"8\" height=\"8\" patternUnits=\"userSpaceOnUse\" patternTransform=\"rotate(45)\"><rect width=\"8\" height=\"8\" fill=\"#fde7c4\"\/><line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"8\" stroke=\"#f5a524\" stroke-width=\"3\"\/><\/pattern><\/defs><rect width=\"900\" height=\"300\" fill=\"#f7fafc\"\/><rect x=\"12\" y=\"40\" width=\"170\" height=\"80\" rx=\"10\" fill=\"#eef6fb\" stroke=\"#22d3ee\" stroke-width=\"2\"\/><text x=\"24\" y=\"66\" font-size=\"16\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">Remote user<\/text><text x=\"24\" y=\"90\" font-size=\"14\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">SSL-VPN login<\/text><rect x=\"300\" y=\"20\" width=\"230\" height=\"92\" rx=\"10\" fill=\"#e9f8ee\" stroke=\"#3fb950\" stroke-width=\"2\"\/><text x=\"312\" y=\"46\" font-size=\"16\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">SAML identity provider<\/text><text x=\"312\" y=\"70\" font-size=\"14\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">enforces MFA<\/text><text x=\"312\" y=\"90\" font-size=\"14\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">(intended path)<\/text><rect x=\"680\" y=\"90\" width=\"205\" height=\"110\" rx=\"10\" fill=\"#eef6fb\" stroke=\"#22d3ee\" stroke-width=\"2\"\/><text x=\"692\" y=\"116\" font-size=\"16\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">SonicOS SSL-VPN<\/text><text x=\"692\" y=\"140\" font-size=\"14\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">Gen7 \u2264 7.3.3-7015<\/text><text x=\"692\" y=\"160\" font-size=\"14\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">Gen8 \u2264 8.2.2-8015<\/text><text x=\"692\" y=\"180\" font-size=\"14\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">SAML auth enabled<\/text><line x1=\"184\" y1=\"70\" x2=\"296\" y2=\"62\" stroke=\"#3fb950\" stroke-width=\"2.5\" marker-end=\"url(#sonicwall-arG)\"\/><line x1=\"532\" y1=\"70\" x2=\"676\" y2=\"120\" stroke=\"#3fb950\" stroke-width=\"2.5\" marker-end=\"url(#sonicwall-arG)\"\/><rect x=\"300\" y=\"170\" width=\"230\" height=\"96\" rx=\"10\" fill=\"#fde8e8\" stroke=\"#e5484d\" stroke-width=\"2\"\/><text x=\"312\" y=\"196\" font-size=\"16\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">Alternate auth method<\/text><text x=\"312\" y=\"220\" font-size=\"14\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">valid credentials for<\/text><text x=\"312\" y=\"240\" font-size=\"14\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">another login method<\/text><line x1=\"184\" y1=\"100\" x2=\"296\" y2=\"210\" stroke=\"#e5484d\" stroke-width=\"2.5\" marker-end=\"url(#sonicwall-arR)\"\/><line x1=\"532\" y1=\"218\" x2=\"676\" y2=\"175\" stroke=\"#e5484d\" stroke-width=\"2.5\" marker-end=\"url(#sonicwall-arR)\"\/><rect x=\"548\" y=\"236\" width=\"273\" height=\"22\" rx=\"5\" fill=\"#e5484d\"\/><text x=\"554\" y=\"252\" font-size=\"13\" fill=\"#ffffff\" font-weight=\"700\" text-anchor=\"start\">CVE-2026-19868: SAML + MFA skipped<\/text><text x=\"12\" y=\"160\" font-size=\"14\" fill=\"#475569\" font-weight=\"700\" text-anchor=\"start\">Reported mechanism<\/text><text x=\"12\" y=\"180\" font-size=\"13\" fill=\"#475569\" font-weight=\"400\" text-anchor=\"start\">(SecurityWeek, BleepingComputer)<\/text><rect x=\"12\" y=\"214\" width=\"270\" height=\"56\" rx=\"8\" fill=\"#3fb950\"\/><text x=\"24\" y=\"238\" font-size=\"14\" fill=\"#ffffff\" font-weight=\"700\" text-anchor=\"start\">Fix: 7.3.4-7013 \/ 8.2.3-8015<\/text><text x=\"24\" y=\"258\" font-size=\"13\" fill=\"#ffffff\" font-weight=\"400\" text-anchor=\"start\">No workaround (vendor)<\/text><text x=\"12\" y=\"292\" font-size=\"13\" fill=\"#475569\" font-weight=\"400\" text-anchor=\"start\" font-style=\"italic\">Conceptual diagram of the reported bypass; exploitation details, actor and IOCs are unknown.<\/text><\/svg><\/div><figcaption><b>Figure 2 \u00b7 Intended SAML path versus the reported bypass.<\/b> Users should reach the SSL-VPN through the SAML identity provider that enforces MFA (green). With CVE-2026-19868, valid credentials for an alternate method reach the VPN without SAML or MFA (red).<span class=\"credit\">Conceptual MAG212 CYBER original diagram, based on SecurityWeek and BleepingComputer reporting. Not an incident reconstruction.<\/span><\/figcaption><\/figure>\n\n <h3>How the attack works<\/h3>\n <p><span class=\"b r\">Reported<\/span> A user who holds valid credentials for an <b>alternate authentication method<\/b> can bypass SAML controls, including SAML-enforced MFA, on SSL-VPN logins. <a class=\"s\" href=\"https:\/\/www.securityweek.com\/sonicwall-patches-exploited-sonicos-bug-that-weakens-vpn-logins\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek<\/a> <span class=\"b u\">Unknown<\/span> Who exploited it, how widely, where the alternate credentials came from, and any IOCs; none were published. No source links it to ransomware. <span class=\"b a\">MAG212 analysis<\/span> SSL-VPN is a common initial-access route, which raises the stakes.<\/p>\n\n <h3>What to look for and how to investigate<\/h3>\n <p>If SAML SSL-VPN is enabled, review VPN logins that authenticated through an alternate method rather than SAML. <a class=\"s\" href=\"https:\/\/www.securityweek.com\/sonicwall-patches-exploited-sonicos-bug-that-weakens-vpn-logins\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek<\/a> We could not open SonicWall&#8217;s PSIRT page, so we don&#8217;t reproduce its GUI path or detection guidance; read <a href=\"https:\/\/psirt.global.sonicwall.com\/vuln-detail\/SNWLID-2026-0014\" target=\"_blank\" rel=\"noopener\">SNWLID-2026-0014<\/a> before acting. Interface labels vary by SonicOS version.<\/p>\n\n <h3>Contain and remediate (in order)<\/h3>\n <ol class=\"steps\">\n  <li>Inventory every SonicWall on Gen7 \u2264 7.3.3-7015 or Gen8 \u2264 8.2.2-8015 and flag those with SAML SSL-VPN.<\/li>\n  <li>Upgrade to <b>7.3.4-7013<\/b> or <b>8.2.3-8015<\/b>; there is no workaround. <a class=\"s\" href=\"https:\/\/www.securityweek.com\/sonicwall-patches-exploited-sonicos-bug-that-weakens-vpn-logins\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek<\/a><\/li>\n  <li>Restrict the management interface, which has its own 8.8 flaws. <a class=\"s\" href=\"https:\/\/www.securityweek.com\/sonicwall-patches-exploited-sonicos-bug-that-weakens-vpn-logins\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek<\/a><\/li>\n  <li><span class=\"b a\">MAG212 analysis<\/span> Where alternate-method logins look suspicious, reset those credentials and review what the sessions reached.<\/li>\n <\/ol>\n\n <h3>Verify recovery<\/h3>\n <p>Confirm each device&#8217;s firmware is at or above the fixed build. Then confirm new SSL-VPN sessions on SAML portals show SAML\/MFA completion, not alternate-method authentication. <b>Commands:<\/b> none were sourced from SonicWall documentation, so none are given.<\/p>\n\n <h3>Prevention and awareness<\/h3>\n <p><span class=\"b a\">MAG212 analysis<\/span> MFA enforced at an identity provider protects only the login paths that go through it. Any parallel authentication method on the same portal is a bypass waiting to happen: inventory them and turn off the ones you don&#8217;t need.<span class=\"endmark\"><\/span><\/p>\n<\/section>\n\n<!-- ============================== A3 PLEX ============================== -->\n<section class=\"sheet flow\" id=\"a3\">\n <div class=\"runhead\"><span class=\"mast\"><span class=\"m\">MAG<\/span><span class=\"n\">212<\/span> <span class=\"y\">CYBER<\/span><\/span><span>Storage \u00b7 NAS<\/span><\/div>\n <header class=\"ahead\"><span class=\"num\">03<\/span><div class=\"kick\">Exploited \u00b7 NAS &amp; media servers<\/div>\n  <h2>Plex2Shell hits Plex Media Server on QNAP NAS<\/h2>\n  <div class=\"chips\"><span class=\"chip hot\">Widespread exploitation<\/span><span class=\"chip\">Reported 9 Nov \u00b7 exploited since mid-Oct<\/span><span class=\"chip\">Evidence: medium<\/span><\/div><\/header>\n <div class=\"glance\">\n  <div><b>CVEs<\/b>CVE-2026-96652, -96654, -96655, -96656<\/div><div><b>Type<\/b>Unauthenticated RCE chain<\/div>\n  <div><b>Fixed<\/b>Plex Media Server 1.43.3.10861 or later<\/div><div><b>Not affected<\/b>QTS and QuTS hero themselves<\/div>\n <\/div>\n\n <h3>What happened and who is affected<\/h3>\n <p><span class=\"b r\">Reported<\/span> QNAP warned of widespread exploitation of <b>Plex2Shell<\/b>, a chain of four unauthenticated remote-code-execution flaws in Plex Media Server, since mid-October after proof-of-concept code was published. Some users report their Plex servers appear compromised. QNAP says QTS and QuTS hero are not affected and no data loss has been reported. <a class=\"s\" href=\"https:\/\/www.securityweek.com\/plex2shell-exploited-against-qnap-nas-users\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek<\/a> QNAP&#8217;s notice is titled for an update to 1.43.3.10861 or later; SecurityWeek says 1.43.3 or later. We follow the more specific build. <a class=\"s\" href=\"https:\/\/www.qnap.com\/en\/security-news\/2026\/qnap-security-notice-plex-media-server-vulnerabilities-plex2shell-update-to-1-43-3-10861-or-later-immediately-no-data-loss-reported\" target=\"_blank\" rel=\"noopener\">QNAP notice<\/a><\/p>\n <p><span class=\"b u\">Unknown<\/span> The actor, payloads, any ransomware link (none reported) and IOCs (none published). <span class=\"b a\">MAG212 analysis<\/span> Schools and SMBs running Plex on a NAS with port 32400 forwarded to the internet are exposed, and a NAS often holds the backups you&#8217;d need to recover from a wider incident.<\/p>\n\n <figure><div class=\"fig-scroll\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 900 300\" role=\"img\" aria-labelledby=\"plex-t plex-d\" font-family=\"Inter, 'Segoe UI', Helvetica, Arial, sans-serif\"><title id=\"plex-t\">Plex2Shell on QNAP NAS: exposed versus hardened setup<\/title><desc id=\"plex-d\">Before: internet traffic reaches a vulnerable Plex Media Server on a QNAP NAS through forwarded port 32400. After: remote access only through a VPN, Plex updated and reinstalled, port closed, passwords rotated.<\/desc><defs><marker id=\"plex-ar\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#22d3ee\"\/><\/marker><marker id=\"plex-arR\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#e5484d\"\/><\/marker><marker id=\"plex-arG\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#3fb950\"\/><\/marker><pattern id=\"plex-hatch\" width=\"8\" height=\"8\" patternUnits=\"userSpaceOnUse\" patternTransform=\"rotate(45)\"><rect width=\"8\" height=\"8\" fill=\"#fde7c4\"\/><line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"8\" stroke=\"#f5a524\" stroke-width=\"3\"\/><\/pattern><\/defs><rect width=\"900\" height=\"300\" fill=\"#f7fafc\"\/><text x=\"12\" y=\"26\" font-size=\"15\" fill=\"#e5484d\" font-weight=\"700\" text-anchor=\"start\">EXPOSED (before)<\/text><rect x=\"12\" y=\"44\" width=\"140\" height=\"74\" rx=\"10\" fill=\"#fde8e8\" stroke=\"#e5484d\" stroke-width=\"2\"\/><text x=\"24\" y=\"70\" font-size=\"16\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">Internet<\/text><text x=\"24\" y=\"94\" font-size=\"14\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">attacker scans<\/text><rect x=\"190\" y=\"44\" width=\"150\" height=\"74\" rx=\"10\" fill=\"#fff4e0\" stroke=\"#f5a524\" stroke-width=\"2\"\/><text x=\"202\" y=\"70\" font-size=\"16\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">Router<\/text><text x=\"202\" y=\"94\" font-size=\"14\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">port 32400<\/text><text x=\"202\" y=\"114\" font-size=\"14\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">forwarded<\/text><rect x=\"372\" y=\"34\" width=\"150\" height=\"196\" rx=\"10\" fill=\"#eef6fb\" stroke=\"#22d3ee\" stroke-width=\"2\"\/><text x=\"384\" y=\"58\" font-size=\"16\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">QNAP NAS<\/text><rect x=\"382\" y=\"70\" width=\"130\" height=\"70\" rx=\"10\" fill=\"#fde8e8\" stroke=\"#e5484d\" stroke-width=\"2\"\/><text x=\"394\" y=\"96\" font-size=\"14\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">Plex &lt; 1.43.3<\/text><text x=\"394\" y=\"120\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">4-flaw RCE chain<\/text><rect x=\"382\" y=\"150\" width=\"130\" height=\"70\" rx=\"10\" fill=\"#e9f8ee\" stroke=\"#3fb950\" stroke-width=\"2\"\/><text x=\"394\" y=\"176\" font-size=\"14\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">QTS \/ QuTS hero<\/text><text x=\"394\" y=\"200\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">not affected<\/text><line x1=\"154\" y1=\"81\" x2=\"186\" y2=\"81\" stroke=\"#e5484d\" stroke-width=\"2.5\" marker-end=\"url(#plex-arR)\"\/><line x1=\"342\" y1=\"81\" x2=\"378\" y2=\"100\" stroke=\"#e5484d\" stroke-width=\"2.5\" marker-end=\"url(#plex-arR)\"\/><text x=\"12\" y=\"152\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">Plex2Shell: CVE-2026-96652,<\/text><text x=\"12\" y=\"170\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">-96654, -96655, -96656<\/text><text x=\"12\" y=\"192\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">unauthenticated RCE<\/text><line x1=\"546\" y1=\"20\" x2=\"546\" y2=\"260\" stroke=\"#cbd5e1\" stroke-width=\"2\" stroke-dasharray=\"6 6\"\/><text x=\"566\" y=\"26\" font-size=\"15\" fill=\"#3fb950\" font-weight=\"700\" text-anchor=\"start\">HARDENED (after)<\/text><rect x=\"566\" y=\"44\" width=\"130\" height=\"74\" rx=\"10\" fill=\"#e9f8ee\" stroke=\"#3fb950\" stroke-width=\"2\"\/><text x=\"578\" y=\"70\" font-size=\"16\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">Remote user<\/text><text x=\"578\" y=\"94\" font-size=\"14\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">via VPN only<\/text><rect x=\"740\" y=\"44\" width=\"148\" height=\"74\" rx=\"10\" fill=\"#e9f8ee\" stroke=\"#3fb950\" stroke-width=\"2\"\/><text x=\"752\" y=\"70\" font-size=\"15\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">NAS<\/text><text x=\"752\" y=\"94\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">Plex \u2265 1.43.3.10861<\/text><text x=\"752\" y=\"114\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">reinstalled<\/text><line x1=\"698\" y1=\"81\" x2=\"736\" y2=\"81\" stroke=\"#3fb950\" stroke-width=\"2.5\" marker-end=\"url(#plex-arG)\"\/><rect x=\"566\" y=\"140\" width=\"322\" height=\"104\" rx=\"10\" fill=\"#fff\" stroke=\"#94a3b8\" stroke-width=\"2\"\/><text x=\"578\" y=\"166\" font-size=\"14\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">Also do<\/text><text x=\"578\" y=\"190\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">close port 32400 \/ Plex Remote Access off<\/text><text x=\"578\" y=\"210\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">rotate Plex + NAS passwords<\/text><text x=\"578\" y=\"230\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">follow QNAP check-and-remediation FAQ<\/text><text x=\"12\" y=\"288\" font-size=\"13\" fill=\"#475569\" font-weight=\"400\" text-anchor=\"start\" font-style=\"italic\">Steps from QNAP notice via SecurityWeek (9 Nov). Actor, payloads and IOCs: unknown.<\/text><\/svg><\/div><figcaption><b>Figure 3 \u00b7 Exposed versus hardened Plex on a NAS.<\/b> Left: port 32400 forwarded straight to a vulnerable Plex Media Server. Right: remote access only through a VPN, Plex reinstalled and updated, port closed, passwords rotated.<span class=\"credit\">MAG212 CYBER original diagram, based on QNAP&#x27;s notice as reported by SecurityWeek (9 Nov 2026).<\/span><\/figcaption><\/figure>\n\n <h3>How the attack works<\/h3>\n <p>Only the outline is published: four flaws chained for unauthenticated code execution in Plex Media Server, reachable where the server is exposed. The individual steps and payloads were not described in the sources we read, so we don&#8217;t speculate.<\/p>\n\n <h3>What to look for, investigate, contain and remediate (in order)<\/h3>\n <ol class=\"steps\">\n  <li>Treat internet-exposed devices as <b>potentially compromised<\/b>. <a class=\"s\" href=\"https:\/\/www.securityweek.com\/plex2shell-exploited-against-qnap-nas-users\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek<\/a><\/li>\n  <li>Disable Plex Remote Access and <b>stop forwarding port 32400<\/b>; use a VPN if remote access is needed.<\/li>\n  <li><b>Reinstall Plex<\/b> and update to 1.43.3.10861 or later.<\/li>\n  <li><b>Rotate<\/b> Plex and NAS passwords.<\/li>\n  <li>Work through QNAP&#8217;s <a href=\"https:\/\/www.qnap.com\/en\/how-to\/faq\/article\/plex2shell-check-and-remediation-faq-for-qnap-nas-users\" target=\"_blank\" rel=\"noopener\">check-and-remediation FAQ<\/a>; MAG212 did not review its contents.<\/li>\n <\/ol>\n\n <h3>Verify recovery and prevention<\/h3>\n <p>Confirm the Plex version, that port 32400 no longer answers from outside your network, and that passwords changed. <span class=\"b a\">MAG212 analysis<\/span> Apps installed on a NAS widen its attack surface: a secure NAS operating system doesn&#8217;t protect a vulnerable media server port-forwarded beside it. <b>Commands:<\/b> none were sourced, so none are given.<span class=\"endmark\"><\/span><\/p>\n<\/section>\n\n<!-- ============================== A4 KEV BATCH ============================== -->\n<section class=\"sheet flow\" id=\"a4\">\n <div class=\"runhead\"><span class=\"mast\"><span class=\"m\">MAG<\/span><span class=\"n\">212<\/span> <span class=\"y\">CYBER<\/span><\/span><span>Vulnerabilities \u00b7 KEV<\/span><\/div>\n <header class=\"ahead\"><span class=\"num\">04<\/span><div class=\"kick\">Exploited \u00b7 CISA KEV<\/div>\n  <h2>Three more on a three-day KEV clock<\/h2>\n  <div class=\"chips\"><span class=\"chip hot\">KEV 9 Nov \u00b7 due 12 Nov<\/span><span class=\"chip\">FreeSWITCH \u00b7 GPUStack \u00b7 IBM Aspera Faspex<\/span><span class=\"chip\">Evidence: medium\u2013strong<\/span><\/div><\/header>\n <p><span class=\"b c\">Confirmed<\/span> On 9 November CISA added four CVEs: OpenSSH (article 1) and the three below. All four carry the unusually short <b>12 November<\/b> due date and a forensic-triage flag, and each required action cites &#8220;CISA&#8217;s BOD 26-04 Prioritizing Security Updates Based on Risk&#8221; and &#8220;Forensics Triage Requirements&#8221;. There were no additions on 7, 8 or 10 November as of catalog v2026.11.09. <a class=\"s\" href=\"https:\/\/raw.githubusercontent.com\/cisagov\/kev-data\/develop\/known_exploited_vulnerabilities.json\" target=\"_blank\" rel=\"noopener\">CISA KEV<\/a> <span class=\"b a\">MAG212 analysis<\/span> The three-day deadline appears to pair with the forensic-triage flag; we could not read the directive itself.<\/p>\n\n <figure><div class=\"fig-scroll\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 900 426\" role=\"img\" aria-labelledby=\"kev-t kev-d\" font-family=\"Inter, 'Segoe UI', Helvetica, Arial, sans-serif\"><title id=\"kev-t\">CISA KEV clocks running this week<\/title><desc id=\"kev-d\">Gantt chart of nine Known Exploited Vulnerabilities from date added to federal due date, from 27 October to 20 November 2026, with today&#x27;s date, 10 November, marked.<\/desc><defs><marker id=\"kev-ar\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#22d3ee\"\/><\/marker><marker id=\"kev-arR\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#e5484d\"\/><\/marker><marker id=\"kev-arG\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#3fb950\"\/><\/marker><pattern id=\"kev-hatch\" width=\"8\" height=\"8\" patternUnits=\"userSpaceOnUse\" patternTransform=\"rotate(45)\"><rect width=\"8\" height=\"8\" fill=\"#fde7c4\"\/><line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"8\" stroke=\"#f5a524\" stroke-width=\"3\"\/><\/pattern><\/defs><rect width=\"900\" height=\"426\" fill=\"#f7fafc\"\/><line x1=\"390\" y1=\"40\" x2=\"390\" y2=\"376\" stroke=\"#e2e8f0\"\/><text x=\"389.61538461538464\" y=\"32\" font-size=\"13\" fill=\"#475569\" font-weight=\"600\" text-anchor=\"middle\">27 Oct<\/text><line x1=\"488\" y1=\"40\" x2=\"488\" y2=\"376\" stroke=\"#e2e8f0\"\/><text x=\"487.6923076923077\" y=\"32\" font-size=\"13\" fill=\"#475569\" font-weight=\"600\" text-anchor=\"middle\">1 Nov<\/text><line x1=\"566\" y1=\"40\" x2=\"566\" y2=\"376\" stroke=\"#e2e8f0\"\/><text x=\"566.1538461538462\" y=\"32\" font-size=\"13\" fill=\"#475569\" font-weight=\"600\" text-anchor=\"middle\">5 Nov<\/text><line x1=\"703\" y1=\"40\" x2=\"703\" y2=\"376\" stroke=\"#e2e8f0\"\/><text x=\"703.4615384615385\" y=\"32\" font-size=\"13\" fill=\"#475569\" font-weight=\"600\" text-anchor=\"middle\">12 Nov<\/text><line x1=\"782\" y1=\"40\" x2=\"782\" y2=\"376\" stroke=\"#e2e8f0\"\/><text x=\"781.9230769230769\" y=\"32\" font-size=\"13\" fill=\"#475569\" font-weight=\"600\" text-anchor=\"middle\">16 Nov<\/text><line x1=\"860\" y1=\"40\" x2=\"860\" y2=\"376\" stroke=\"#e2e8f0\"\/><text x=\"860.3846153846154\" y=\"32\" font-size=\"13\" fill=\"#475569\" font-weight=\"600\" text-anchor=\"middle\">20 Nov<\/text><rect x=\"662\" y=\"40\" width=\"4\" height=\"336\" fill=\"#f5a524\"\/><rect x=\"624.2307692307693\" y=\"380\" width=\"94\" height=\"21\" rx=\"5\" fill=\"#f5a524\"\/><text x=\"630.2307692307693\" y=\"395\" font-size=\"12\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">TODAY 10 Nov<\/text><text x=\"12\" y=\"69\" font-size=\"14\" fill=\"#0f172a\" font-weight=\"500\" text-anchor=\"start\">Adobe Commerce<\/text><text x=\"196\" y=\"69\" font-size=\"12\" fill=\"#475569\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">CVE-2026-48356<\/text><rect x=\"390\" y=\"55\" width=\"275\" height=\"20\" rx=\"5\" fill=\"#22d3ee\"\/><circle cx=\"664\" cy=\"65\" r=\"6\" fill=\"#0f172a\"\/><text x=\"12\" y=\"103\" font-size=\"14\" fill=\"#0f172a\" font-weight=\"500\" text-anchor=\"start\">Google Brotli<\/text><text x=\"196\" y=\"103\" font-size=\"12\" fill=\"#475569\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">CVE-2026-111497<\/text><rect x=\"390\" y=\"89\" width=\"275\" height=\"20\" rx=\"5\" fill=\"#22d3ee\"\/><circle cx=\"664\" cy=\"99\" r=\"6\" fill=\"#0f172a\"\/><text x=\"12\" y=\"137\" font-size=\"14\" fill=\"#0f172a\" font-weight=\"500\" text-anchor=\"start\">Broadcom VMware ESX<\/text><text x=\"196\" y=\"137\" font-size=\"12\" fill=\"#475569\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">CVE-2026-41709<\/text><rect x=\"409\" y=\"123\" width=\"275\" height=\"20\" rx=\"5\" fill=\"#22d3ee\"\/><circle cx=\"684\" cy=\"133\" r=\"6\" fill=\"#0f172a\"\/><text x=\"12\" y=\"171\" font-size=\"14\" fill=\"#0f172a\" font-weight=\"500\" text-anchor=\"start\">Ivanti Connect Secure<\/text><text x=\"196\" y=\"171\" font-size=\"12\" fill=\"#475569\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">CVE-2026-118527<\/text><rect x=\"448\" y=\"157\" width=\"275\" height=\"20\" rx=\"5\" fill=\"#22d3ee\"\/><circle cx=\"723\" cy=\"167\" r=\"6\" fill=\"#0f172a\"\/><text x=\"12\" y=\"205\" font-size=\"14\" fill=\"#0f172a\" font-weight=\"500\" text-anchor=\"start\">SonicWall SSL-VPN<\/text><text x=\"196\" y=\"205\" font-size=\"12\" fill=\"#475569\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">CVE-2026-19868<\/text><rect x=\"586\" y=\"191\" width=\"275\" height=\"20\" rx=\"5\" fill=\"#22d3ee\"\/><circle cx=\"860\" cy=\"201\" r=\"6\" fill=\"#0f172a\"\/><text x=\"12\" y=\"239\" font-size=\"14\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">OpenSSH<\/text><text x=\"196\" y=\"239\" font-size=\"12\" fill=\"#475569\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">CVE-2026-123158<\/text><rect x=\"645\" y=\"225\" width=\"59\" height=\"20\" rx=\"5\" fill=\"#e5484d\"\/><circle cx=\"703\" cy=\"235\" r=\"6\" fill=\"#0f172a\"\/><text x=\"12\" y=\"273\" font-size=\"14\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">FreeSWITCH<\/text><text x=\"196\" y=\"273\" font-size=\"12\" fill=\"#475569\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">CVE-2026-116779<\/text><rect x=\"645\" y=\"259\" width=\"59\" height=\"20\" rx=\"5\" fill=\"#e5484d\"\/><circle cx=\"703\" cy=\"269\" r=\"6\" fill=\"#0f172a\"\/><text x=\"12\" y=\"307\" font-size=\"14\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">GPUStack<\/text><text x=\"196\" y=\"307\" font-size=\"12\" fill=\"#475569\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">CVE-2026-102895<\/text><rect x=\"645\" y=\"293\" width=\"59\" height=\"20\" rx=\"5\" fill=\"#e5484d\"\/><circle cx=\"703\" cy=\"303\" r=\"6\" fill=\"#0f172a\"\/><text x=\"12\" y=\"341\" font-size=\"14\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">IBM Aspera Faspex<\/text><text x=\"196\" y=\"341\" font-size=\"12\" fill=\"#475569\" font-weight=\"400\" text-anchor=\"start\" font-family=\"'DejaVu Sans Mono', Consolas, monospace\">CVE-2026-123218<\/text><rect x=\"645\" y=\"327\" width=\"59\" height=\"20\" rx=\"5\" fill=\"#e5484d\"\/><circle cx=\"703\" cy=\"337\" r=\"6\" fill=\"#0f172a\"\/><rect x=\"12\" y=\"388\" width=\"14\" height=\"14\" fill=\"#e5484d\"\/><text x=\"32\" y=\"400\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">added 9 Nov, due 12 Nov (forensic triage)<\/text><rect x=\"12\" y=\"408\" width=\"14\" height=\"14\" fill=\"#94a3b8\"\/><text x=\"32\" y=\"420\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">due today or earlier<\/text><text x=\"888\" y=\"420\" font-size=\"12\" fill=\"#475569\" font-weight=\"400\" text-anchor=\"end\" font-style=\"italic\">Bars: KEV added \u2192 federal due date (\u25cf). Data: CISA KEV v2026.11.09<\/text><\/svg><\/div><figcaption><b>Figure 4 \u00b7 KEV clocks running this week.<\/b> Each bar runs from the date CISA added the flaw to KEV to the federal due date. The four 9 November additions (red) got three days.<span class=\"credit\">MAG212 CYBER original chart. Data: CISA KEV catalog v2026.11.09 (GitHub mirror).<\/span><\/figcaption><\/figure>\n\n <h3>FreeSWITCH: SIP MESSAGE command injection (CVE-2026-116779)<\/h3>\n <p><span class=\"b c\">Confirmed<\/span> KEV says it &#8220;permits configuration and credential disclosure, arbitrary call control, and command execution&#8221;. <a class=\"s\" href=\"https:\/\/raw.githubusercontent.com\/cisagov\/kev-data\/develop\/known_exploited_vulnerabilities.json\" target=\"_blank\" rel=\"noopener\">CISA KEV<\/a> <span class=\"b r\">Reported<\/span> CVSS 9.8; affects 1.11.2 and earlier; fixed in <b>1.11.3<\/b>. The vendor advisory (GHSA-mg63-h38w-8p9p, 28 Oct) states &#8220;Exploitation of this path has been observed in the wild.&#8221; An inbound SIP MESSAGE reaches the &#8220;api&#8221; chat handler and runs commands with server privileges. Chat is on by default for internal and external profiles, authenticating a MESSAGE needs only one account on the profile, and older sample configs include a directory user with no password. <a class=\"s\" href=\"https:\/\/securityonline.info\/freeswitch-vulnerability-cve-2026-116779-exploited\/\" target=\"_blank\" rel=\"noopener\">SecurityOnline<\/a><\/p>\n <p><b>Look for<\/b> unexpected SIP MESSAGE traffic and API activity in logs. <b>Remediate, in order:<\/b> upgrade to 1.11.3; keep <code>enable-chat-api-proto<\/code> off (default); set <code>enable-chat=false<\/code> where SIP chat isn&#8217;t needed; remove passwordless directory users; set <code>ice_verify_message_integrity<\/code>; leave mod_xml_rpc <code>enable-websocket<\/code> unset. <a class=\"s\" href=\"https:\/\/securityonline.info\/freeswitch-vulnerability-cve-2026-116779-exploited\/\" target=\"_blank\" rel=\"noopener\">SecurityOnline<\/a> <span class=\"b u\">Unknown<\/span> Who is exploiting it and which PBX products embed vulnerable FreeSWITCH. The <a href=\"https:\/\/github.com\/signalwire\/freeswitch\/security\/advisories\/GHSA-mg63-h38w-8p9p\" target=\"_blank\" rel=\"noopener\">vendor advisory<\/a> was not opened by MAG212.<\/p>\n\n <h3>GPUStack: improper authentication (CVE-2026-102895)<\/h3>\n <p><span class=\"b c\">Confirmed<\/span> KEV: &#8220;unauthenticated administrative access\u2026 persistent administrator API-key creation, disclosure of worker and cloud-provider secrets, and code execution through POST \/v2\/inference-backends\/from-yaml&#8221;. <a class=\"s\" href=\"https:\/\/raw.githubusercontent.com\/cisagov\/kev-data\/develop\/known_exploited_vulnerabilities.json\" target=\"_blank\" rel=\"noopener\">CISA KEV<\/a> <span class=\"b r\">Reported<\/span> CVSS 9.8. Builds before 2.2.0 trust loopback requests as admin because <code>force_auth_localhost<\/code> defaults to false; attackers reach this through a same-host reverse proxy or a spoofed <code>X-GPUStack-Real-IP: 127.0.0.1<\/code> header. Exploitation was observed against v2.1.1, with custom backends used to launch reverse shells. Fixed in 2.2.0; <b>upgrade to 2.2.2 or later<\/b> to also fix SAML bypass CVE-2026-102894. Workarounds: <code>force_auth_localhost=true<\/code>, strip <code>X-GPUStack-Real-IP<\/code> at the proxy, block <code>\/auth\/saml\/callback<\/code>. <a class=\"s\" href=\"https:\/\/securityonline.info\/gpustack-authentication-bypass-cve-2026-102895-exploited\/\" target=\"_blank\" rel=\"noopener\">SecurityOnline<\/a> <span class=\"b a\">MAG212 analysis<\/span> Because cloud-provider and worker secrets are exposed, patching isn&#8217;t enough on any exposed instance: rotate those credentials too.<\/p>\n\n <h3>IBM Aspera Faspex: incorrect authorization (CVE-2026-123218)<\/h3>\n <p><span class=\"b c\">Confirmed<\/span> Affects Faspex 5.0.0 to 5.0.19; fixed in <b>5.0.19 PL1<\/b>; after patching, the faspex-core image should report &#8220;5.0.19 (1ce4b13, Fix Pack: 1)&#8221;. IBM offers no workarounds and its bulletin does not mention exploitation. <a class=\"s\" href=\"https:\/\/ibm.com\/support\/pages\/node\/7295921\" target=\"_blank\" rel=\"noopener\">IBM<\/a> KEV describes it as letting &#8220;an authenticated user\u2026 bypass authorization, causing privilege escalations&#8221;. <a class=\"s\" href=\"https:\/\/raw.githubusercontent.com\/cisagov\/kev-data\/develop\/known_exploited_vulnerabilities.json\" target=\"_blank\" rel=\"noopener\">CISA KEV<\/a><\/p>\n <div class=\"call warn\"><p style=\"margin:0\"><b>Conflict:<\/b> IBM scores it CVSS 9.8 with vector <code>PR:N<\/code> (no privileges required), which contradicts the &#8220;authenticated user&#8221; wording in both IBM&#8217;s bulletin and KEV. The bulletin&#8217;s &#8220;modified&#8221; date (6 Nov) also precedes its first-published date (7 Nov). <span class=\"b a\">MAG212 analysis<\/span> Until IBM clarifies, treat it as needing no privileges and patch internet-facing Faspex first. <span class=\"b u\">Unknown<\/span> Who exploited it and how; the KEV listing is the only exploitation evidence.<\/p><\/div>\n <p class=\"small muted\">Commands: none of the three sources supply shell commands; the settings above are configuration directives from the sources.<span class=\"endmark\"><\/span><\/p>\n<\/section>\n\n<!-- ============================== A5 QUBOLE ============================== -->\n<section class=\"sheet flow\" id=\"a5\">\n <div class=\"runhead\"><span class=\"mast\"><span class=\"m\">MAG<\/span><span class=\"n\">212<\/span> <span class=\"y\">CYBER<\/span><\/span><span>Cloud \u00b7 Identity<\/span><\/div>\n <header class=\"ahead\"><span class=\"num\">05<\/span><div class=\"kick\">Cloud &amp; identity \u00b7 Observed in the wild<\/div>\n  <h2>Qubole&#8217;s own AWS account was turned on its customers<\/h2>\n  <div class=\"chips\"><span class=\"chip hot\">Observed in the wild<\/span><span class=\"chip\">Reported 9 Nov \u00b7 activity 8\u201326 Oct<\/span><span class=\"chip warn\">Primary research not opened<\/span><span class=\"chip\">Evidence: medium<\/span><\/div><\/header>\n <div class=\"glance\">\n  <div><b>Vendor<\/b>Qubole (data lake platform, owned by Idera)<\/div><div><b>Abused<\/b>AWS account 805246085872<\/div>\n  <div><b>Target<\/b>Customer IAM roles trusting Qubole<\/div><div><b>Victims<\/b>&#8220;Multiple&#8221; \u00b7 no count<\/div>\n <\/div>\n\n <h3>What happened<\/h3>\n <p><span class=\"b r\">Reported<\/span> An attacker holding credentials for <b>Qubole&#8217;s AWS account (805246085872)<\/b> assumed IAM roles that customers had created to trust it, and the AssumeRole requests carried the correct External ID. Most of the roles were no longer used but still trusted Qubole. Sentra spotted the activity in several customers&#8217; environments and alerted Wiz. Neither Qubole nor Idera had made a public statement when The Hacker News checked. <a class=\"s\" href=\"https:\/\/thehackernews.com\/2026\/11\/hackers-exploit-quboles-trusted-aws.html\" target=\"_blank\" rel=\"noopener\">The Hacker News<\/a> (primary research: <a href=\"https:\/\/www.wiz.io\/blog\/qubole-cross-account-access-abused-in-the-wild\" target=\"_blank\" rel=\"noopener\">Wiz<\/a>, not opened by MAG212)<\/p>\n <p><span class=\"b r\">Reported timeline<\/span> AssumeRole break-ins ran <b>14\u201326 October<\/b>; from 18 October the attacker used IAM user <code>AIDAJYRRH5Y3A7AAJM2HW<\/code>. Separately, on <b>8\u201311 October<\/b>, an attacker not linked to the first used customers&#8217; own AWS access keys, an access option Qubole supports. <a class=\"s\" href=\"https:\/\/thehackernews.com\/2026\/11\/hackers-exploit-quboles-trusted-aws.html\" target=\"_blank\" rel=\"noopener\">The Hacker News<\/a><\/p>\n\n <h3>Who is affected<\/h3>\n <p>Any AWS account containing an IAM role that trusts Qubole&#8217;s account, <b>including roles nobody uses any more<\/b>. <span class=\"b r\">Reported<\/span> Qubole&#8217;s setup guide includes a sample S3 policy that lets the role read every bucket in the account. <a class=\"s\" href=\"https:\/\/docs.qubole.com\/en\/latest\/user-guide\/managing-accounts\/aws\/iam-roles\/create-iam-roles.html\" target=\"_blank\" rel=\"noopener\">Qubole docs<\/a><\/p>\n\n <figure><div class=\"fig-scroll\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 900 360\" role=\"img\" aria-labelledby=\"qubole-t qubole-d\" font-family=\"Inter, 'Segoe UI', Helvetica, Arial, sans-serif\"><title id=\"qubole-t\">Qubole cross-account role abuse and where to break it<\/title><desc id=\"qubole-d\">The attacker used Qubole&#x27;s AWS account to assume customer IAM roles with the correct External ID, read Lambda, Secrets Manager, SSM and S3 data, and validated stolen AWS, Entra ID and Okta credentials with TruffleHog. A green band lists six defensive controls.<\/desc><defs><marker id=\"qubole-ar\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#22d3ee\"\/><\/marker><marker id=\"qubole-arR\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#e5484d\"\/><\/marker><marker id=\"qubole-arG\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#3fb950\"\/><\/marker><pattern id=\"qubole-hatch\" width=\"8\" height=\"8\" patternUnits=\"userSpaceOnUse\" patternTransform=\"rotate(45)\"><rect width=\"8\" height=\"8\" fill=\"#fde7c4\"\/><line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"8\" stroke=\"#f5a524\" stroke-width=\"3\"\/><\/pattern><\/defs><rect width=\"900\" height=\"360\" fill=\"#f7fafc\"\/><rect x=\"12\" y=\"30\" width=\"184\" height=\"124\" rx=\"10\" fill=\"#fde8e8\" stroke=\"#e5484d\" stroke-width=\"2\"\/><text x=\"24\" y=\"56\" font-size=\"16\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">Qubole AWS acct<\/text><text x=\"24\" y=\"80\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">805246085872<\/text><text x=\"24\" y=\"100\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">credentials held by<\/text><text x=\"24\" y=\"120\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">attacker<\/text><text x=\"24\" y=\"140\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">(how: unknown)<\/text><line x1=\"198\" y1=\"92\" x2=\"296\" y2=\"92\" stroke=\"#e5484d\" stroke-width=\"2.5\" marker-end=\"url(#qubole-arR)\"\/><text x=\"204\" y=\"76\" font-size=\"12.5\" fill=\"#e5484d\" font-weight=\"700\" text-anchor=\"start\">AssumeRole<\/text><text x=\"204\" y=\"114\" font-size=\"12\" fill=\"#e5484d\" font-weight=\"400\" text-anchor=\"start\">+ correct<\/text><text x=\"204\" y=\"130\" font-size=\"12\" fill=\"#e5484d\" font-weight=\"400\" text-anchor=\"start\">External ID<\/text><rect x=\"300\" y=\"30\" width=\"200\" height=\"124\" rx=\"10\" fill=\"#fff4e0\" stroke=\"#f5a524\" stroke-width=\"2\"\/><text x=\"312\" y=\"56\" font-size=\"16\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">Customer IAM role<\/text><text x=\"312\" y=\"80\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">trusts Qubole<\/text><text x=\"312\" y=\"100\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">often unused<\/text><text x=\"312\" y=\"120\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">sample S3 policy:<\/text><text x=\"312\" y=\"140\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">reads all buckets<\/text><line x1=\"502\" y1=\"92\" x2=\"524\" y2=\"92\" stroke=\"#e5484d\" stroke-width=\"2.5\" marker-end=\"url(#qubole-arR)\"\/><rect x=\"528\" y=\"18\" width=\"176\" height=\"136\" rx=\"10\" fill=\"#eef6fb\" stroke=\"#22d3ee\" stroke-width=\"2\"\/><text x=\"540\" y=\"44\" font-size=\"16\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">Read secrets<\/text><text x=\"540\" y=\"68\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">Lambda env vars<\/text><text x=\"540\" y=\"88\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">Secrets Manager<\/text><text x=\"540\" y=\"108\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">SSM Parameter Store<\/text><text x=\"540\" y=\"128\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">S3 data copied<\/text><line x1=\"706\" y1=\"92\" x2=\"724\" y2=\"92\" stroke=\"#e5484d\" stroke-width=\"2.5\" marker-end=\"url(#qubole-arR)\"\/><rect x=\"728\" y=\"18\" width=\"162\" height=\"136\" rx=\"10\" fill=\"#fde8e8\" stroke=\"#e5484d\" stroke-width=\"2\"\/><text x=\"740\" y=\"44\" font-size=\"16\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">TruffleHog<\/text><text x=\"740\" y=\"68\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">validates stolen:<\/text><text x=\"740\" y=\"88\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">AWS keys<\/text><text x=\"740\" y=\"108\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">Entra ID secrets<\/text><text x=\"740\" y=\"128\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">Okta client creds<\/text><rect x=\"12\" y=\"178\" width=\"878\" height=\"122\" rx=\"10\" fill=\"#e9f8ee\" stroke=\"#3fb950\" stroke-width=\"2\"\/><text x=\"26\" y=\"204\" font-size=\"16\" fill=\"#14532d\" font-weight=\"700\" text-anchor=\"start\">Where defenders break the chain (THN summarising Wiz)<\/text><text x=\"26\" y=\"232\" font-size=\"14\" fill=\"#14532d\" font-weight=\"400\" text-anchor=\"start\">\u2460 add aws:SourceIp \/ aws:SourceVpce to the trust policy<\/text><text x=\"466\" y=\"232\" font-size=\"14\" fill=\"#14532d\" font-weight=\"400\" text-anchor=\"start\">\u2461 delete vendor roles nobody uses<\/text><text x=\"26\" y=\"256\" font-size=\"14\" fill=\"#14532d\" font-weight=\"400\" text-anchor=\"start\">\u2462 replace :root with Qubole&#x27;s specific principal<\/text><text x=\"466\" y=\"256\" font-size=\"14\" fill=\"#14532d\" font-weight=\"400\" text-anchor=\"start\">\u2463 revoke sessions, then rotate everything reachable<\/text><text x=\"26\" y=\"280\" font-size=\"14\" fill=\"#14532d\" font-weight=\"400\" text-anchor=\"start\">\u2464 org trail + S3 data events (reads are invisible otherwise)<\/text><text x=\"466\" y=\"280\" font-size=\"14\" fill=\"#14532d\" font-weight=\"400\" text-anchor=\"start\">\u2465 External ID is NOT a secret<\/text><line x1=\"200\" y1=\"176\" x2=\"360\" y2=\"158\" stroke=\"#3fb950\" stroke-width=\"2.5\" stroke-dasharray=\"6 4\" marker-end=\"url(#qubole-arG)\"\/><text x=\"12\" y=\"330\" font-size=\"13\" fill=\"#14532d\" font-weight=\"600\" text-anchor=\"start\" font-style=\"italic\">\u201cA source IP condition alone would have blocked every role assumption we observed.\u201d (researchers, via THN)<\/text><text x=\"12\" y=\"352\" font-size=\"13\" fill=\"#475569\" font-weight=\"400\" text-anchor=\"start\" font-style=\"italic\">Activity window reported: 14\u201326 Oct (AssumeRole path). Wiz primary post not fetched by MAG212.<\/text><\/svg><\/div><figcaption><b>Figure 5 \u00b7 Qubole cross-account role abuse, and where to break it.<\/b> The reported chain from Qubole&#x27;s AWS account to stolen cloud and identity secrets, with the six controls that would have stopped or exposed it.<span class=\"credit\">MAG212 CYBER original diagram, based on The Hacker News summarising Wiz research (9 Nov 2026). Wiz&#x27;s post was not opened by MAG212.<\/span><\/figcaption><\/figure>\n\n <h3>How the attack works<\/h3>\n <p><span class=\"b r\">Reported<\/span> (1) AssumeRole into the customer role from Qubole&#8217;s account; (2) read Lambda environment variables, Secrets Manager secrets and SSM Parameter Store values; (3) test the harvested credentials with TruffleHog, including victims&#8217; AWS keys, <b>Entra ID client secrets and Okta client credentials<\/b>; (4) copy S3 data, sometimes a whole bucket in one session. <a class=\"s\" href=\"https:\/\/thehackernews.com\/2026\/11\/hackers-exploit-quboles-trusted-aws.html\" target=\"_blank\" rel=\"noopener\">The Hacker News<\/a> <span class=\"b u\">Unknown<\/span> How the attacker got Qubole&#8217;s credentials, the number of victims, and whether a vendor statement will follow.<\/p>\n\n <h3>What to look for (published indicators)<\/h3>\n <div class=\"t-wrap\"><table class=\"ioc\">\n  <thead><tr><th>Indicator<\/th><th>Context<\/th><\/tr><\/thead><tbody>\n  <tr><td>Account <code>805246085872<\/code><\/td><td>Flag AssumeRole calls from non-AWS IP addresses<\/td><\/tr>\n  <tr><td><code>AIDA3W7DIFLYOLTK63SFS<\/code><\/td><td>Used only by the attacker in the examined accounts: investigate all its activity<\/td><\/tr>\n  <tr><td><code>AIDAJYRRH5Y3A7AAJM2HW<\/code><\/td><td>Also used legitimately by Qubole: investigate only when the source is outside AWS<\/td><\/tr>\n  <tr><td><code>57.129.54[.]120<\/code>, <code>2001:41d0:70d[:]7800::<\/code><\/td><td>OVH<\/td><\/tr>\n  <tr><td><code>45.83.220[.]211<\/code>, <code>185.209.199[.]73<\/code>, <code>89.37.63[.]175<\/code><\/td><td>Mullvad shared VPN exits: not proof on their own<\/td><\/tr>\n  <tr><td>Session names <code>quiam-*<\/code><\/td><td>Attacker role-session naming, e.g. <code>quiam-enum<\/code><\/td><\/tr>\n  <tr><td>TruffleHog user agent<\/td><td>On <code>GetCallerIdentity<\/code>: credential validation<\/td><\/tr>\n <\/tbody><\/table><p class=\"small muted\" style=\"margin:4px 0 0\">Source: <a href=\"https:\/\/thehackernews.com\/2026\/11\/hackers-exploit-quboles-trusted-aws.html\" target=\"_blank\" rel=\"noopener\">The Hacker News<\/a>, summarising Wiz. Defanged with [.] and [:].<\/p><\/div>\n\n <h3>Investigate, contain and remediate (in order)<\/h3>\n <ol class=\"steps\">\n  <li>Review <b>CloudTrail from 1 October<\/b> in every account holding a Qubole role.<\/li>\n  <li><b>Revoke active sessions<\/b> for any abused role; rotation alone doesn&#8217;t end them.<\/li>\n  <li><b>Rotate everything the role could reach<\/b>, including Entra ID and Okta app credentials stored in AWS.<\/li>\n  <li><b>Remove vendor roles you don&#8217;t need.<\/b><\/li>\n  <li>Where Qubole supports it, replace the <code>:root<\/code> principal with Qubole&#8217;s specific principal.<\/li>\n  <li>Add an <code>aws:SourceIp<\/code> or <code>aws:SourceVpce<\/code> condition. The researchers: &#8220;a source IP condition alone would have blocked every role assumption we observed.&#8221;<\/li>\n  <li>Enable an <b>organization trail<\/b> and <b>S3 data events or server access logs<\/b>; management events don&#8217;t show object reads.<\/li>\n <\/ol>\n <p class=\"small muted\">Source for all steps: <a href=\"https:\/\/thehackernews.com\/2026\/11\/hackers-exploit-quboles-trusted-aws.html\" target=\"_blank\" rel=\"noopener\">The Hacker News<\/a>. Wiz&#8217;s exact detection queries could not be verified, so none are reproduced.<\/p>\n\n <h3>Verify recovery<\/h3>\n <p>Confirm no Qubole-trusting role remains without a source condition, that rotated secrets are the ones in use, and that S3 data-event logging is active.<\/p>\n\n <h3>Prevention and awareness<\/h3>\n <p><span class=\"b r\">Reported<\/span> Don&#8217;t treat the External ID as a secret. <a class=\"s\" href=\"https:\/\/docs.aws.amazon.com\/IAM\/latest\/UserGuide\/id_roles_common-scenarios_third-party.html\" target=\"_blank\" rel=\"noopener\">AWS guidance<\/a> <span class=\"b a\">MAG212 analysis<\/span> For MSPs, today&#8217;s job is an inventory of vendor cross-account roles across every client AWS account, each with an owner and a reason to exist.<span class=\"endmark\"><\/span><\/p>\n<\/section>\n\n<!-- ============================== A6 FRANCE ============================== -->\n<section class=\"sheet flow\" id=\"a6\">\n <div class=\"runhead\"><span class=\"mast\"><span class=\"m\">MAG<\/span><span class=\"n\">212<\/span> <span class=\"y\">CYBER<\/span><\/span><span>Critical infrastructure \u00b7 OT<\/span><\/div>\n <header class=\"ahead\"><span class=\"num\">06<\/span><div class=\"kick\">Critical infrastructure \u00b7 Nation-state<\/div>\n  <h2>France blames Iran&#8217;s IRGC for heating supermarket fridges<\/h2>\n  <div class=\"chips\"><span class=\"chip hot\">Sabotage occurred<\/span><span class=\"chip\">Statements 9 Nov \u00b7 published 10 Nov<\/span><span class=\"chip\">US advisory 5\u20136 Nov (background)<\/span><span class=\"chip\">Evidence: medium<\/span><\/div><\/header>\n\n <h3>What happened<\/h3>\n <p><span class=\"b r\">Reported<\/span> Paris prosecutors said Iran&#8217;s Revolutionary Guard was behind the October attack on supermarket refrigeration, and France&#8217;s cyber agency ANSSI attributed it to the <b>Shahid Kaveh group<\/b>, which it describes as an IRGC-affiliated cyber unit. Prosecutor Laure Beccuau opened a judicial investigation into organised cybercrime &#8220;aggravated by serving a foreign power, in this case, Iran&#8221;, targeting the group&#8217;s leader and two deputies. Cited evidence includes Farsi use and IP addresses linked to devices in Iran. International arrest warrants are being sought but not yet issued. Foreign minister Jean-No\u00ebl Barrot summoned Iran&#8217;s ambassador and said France would seek sanctions &#8220;at the European level&#8221;. <a class=\"s\" href=\"https:\/\/www.securityweek.com\/france-blames-iran-for-a-cyberattack-that-heated-supermarket-refrigerators\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek\/AP<\/a><\/p>\n <p><span class=\"b r\">Reported impact<\/span> Attackers took control of refrigeration in about <b>700 of France&#8217;s 10,000 supermarkets<\/b>; temperatures reached <b>50\u00b0C for about six hours<\/b>; Intermarch\u00e9 reported losses of &#8220;tens of millions of euros&#8221; in a day. <a class=\"s\" href=\"https:\/\/www.securityweek.com\/france-blames-iran-for-a-cyberattack-that-heated-supermarket-refrigerators\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek\/AP<\/a> AP dates the attack to 12 October; earlier reporting says overnight 11\u201312 October, which we use. <a class=\"s\" href=\"https:\/\/www.securityweek.com\/over-100-european-stores-hit-as-supermarket-fridge-attacks-resume\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek<\/a><\/p>\n\n <figure><div class=\"fig-scroll\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 900 250\" role=\"img\" aria-labelledby=\"france-timeline-t france-timeline-d\" font-family=\"Inter, 'Segoe UI', Helvetica, Arial, sans-serif\"><title id=\"france-timeline-t\">Timeline of the refrigeration sabotage, October\u2013November 2026<\/title><desc id=\"france-timeline-d\">Timeline: first wave in France 11\u201312 October, Danfoss notice 13 October, second wave 31 October to 2 November, French blood bank incident, US joint advisory 5\u20136 November, and France&#x27;s attribution to an IRGC-linked group on 9\u201310 November.<\/desc><defs><marker id=\"france-timeline-ar\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#22d3ee\"\/><\/marker><marker id=\"france-timeline-arR\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#e5484d\"\/><\/marker><marker id=\"france-timeline-arG\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#3fb950\"\/><\/marker><pattern id=\"france-timeline-hatch\" width=\"8\" height=\"8\" patternUnits=\"userSpaceOnUse\" patternTransform=\"rotate(45)\"><rect width=\"8\" height=\"8\" fill=\"#fde7c4\"\/><line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"8\" stroke=\"#f5a524\" stroke-width=\"3\"\/><\/pattern><\/defs><rect width=\"900\" height=\"250\" fill=\"#f7fafc\"\/><line x1=\"30\" y1=\"70\" x2=\"880\" y2=\"70\" stroke=\"#0f172a\" stroke-width=\"3\"\/><circle cx=\"80\" cy=\"70\" r=\"10\" fill=\"#e5484d\"\/><text x=\"80\" y=\"45\" font-size=\"14\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"middle\">11\u201312 Oct<\/text><line x1=\"80\" y1=\"82\" x2=\"80\" y2=\"104\" stroke=\"#94a3b8\"\/><rect x=\"9\" y=\"106\" width=\"142\" height=\"70\" rx=\"8\" fill=\"#fff\" stroke=\"#e5484d\" stroke-width=\"2\"\/><text x=\"80\" y=\"130\" font-size=\"13.5\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"middle\">First wave (FR)<\/text><text x=\"80\" y=\"150\" font-size=\"12\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"middle\">~700 stores<\/text><text x=\"80\" y=\"168\" font-size=\"12\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"middle\">50\u00b0C for ~6 h (AP)<\/text><circle cx=\"228\" cy=\"70\" r=\"10\" fill=\"#22d3ee\"\/><text x=\"228\" y=\"45\" font-size=\"14\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"middle\">13 Oct<\/text><line x1=\"228\" y1=\"82\" x2=\"228\" y2=\"104\" stroke=\"#94a3b8\"\/><rect x=\"157\" y=\"106\" width=\"142\" height=\"70\" rx=\"8\" fill=\"#fff\" stroke=\"#22d3ee\" stroke-width=\"2\"\/><text x=\"228\" y=\"130\" font-size=\"13.5\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"middle\">Danfoss notice<\/text><text x=\"228\" y=\"150\" font-size=\"12\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"middle\">disconnect units<\/text><text x=\"228\" y=\"168\" font-size=\"12\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"middle\">from the internet<\/text><circle cx=\"376\" cy=\"70\" r=\"10\" fill=\"#e5484d\"\/><text x=\"376\" y=\"45\" font-size=\"14\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"middle\">31 Oct\u20132 Nov<\/text><line x1=\"376\" y1=\"82\" x2=\"376\" y2=\"104\" stroke=\"#94a3b8\"\/><rect x=\"305\" y=\"106\" width=\"142\" height=\"70\" rx=\"8\" fill=\"#fff\" stroke=\"#e5484d\" stroke-width=\"2\"\/><text x=\"376\" y=\"130\" font-size=\"13.5\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"middle\">Second wave<\/text><text x=\"376\" y=\"150\" font-size=\"12\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"middle\">100+ stores<\/text><text x=\"376\" y=\"168\" font-size=\"12\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"middle\">6 countries<\/text><circle cx=\"524\" cy=\"70\" r=\"10\" fill=\"#f5a524\"\/><text x=\"524\" y=\"45\" font-size=\"14\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"middle\">5 Nov<\/text><line x1=\"524\" y1=\"82\" x2=\"524\" y2=\"104\" stroke=\"#94a3b8\"\/><rect x=\"453\" y=\"106\" width=\"142\" height=\"70\" rx=\"8\" fill=\"#fff\" stroke=\"#f5a524\" stroke-width=\"2\"\/><text x=\"524\" y=\"130\" font-size=\"13.5\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"middle\">EFS blood bank<\/text><text x=\"524\" y=\"150\" font-size=\"12\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"middle\">3 plasma cold sites<\/text><text x=\"524\" y=\"168\" font-size=\"12\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"middle\">no products hit<\/text><circle cx=\"672\" cy=\"70\" r=\"10\" fill=\"#22d3ee\"\/><text x=\"672\" y=\"45\" font-size=\"14\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"middle\">5\u20136 Nov<\/text><line x1=\"672\" y1=\"82\" x2=\"672\" y2=\"104\" stroke=\"#94a3b8\"\/><rect x=\"601\" y=\"106\" width=\"142\" height=\"70\" rx=\"8\" fill=\"#fff\" stroke=\"#22d3ee\" stroke-width=\"2\"\/><text x=\"672\" y=\"130\" font-size=\"13.5\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"middle\">US advisory<\/text><text x=\"672\" y=\"150\" font-size=\"12\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"middle\">CISA, FBI, HHS<\/text><text x=\"672\" y=\"168\" font-size=\"12\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"middle\">USDA, DoT<\/text><circle cx=\"820\" cy=\"70\" r=\"10\" fill=\"#3fb950\"\/><text x=\"820\" y=\"45\" font-size=\"14\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"middle\">9\u201310 Nov<\/text><line x1=\"820\" y1=\"82\" x2=\"820\" y2=\"104\" stroke=\"#94a3b8\"\/><rect x=\"749\" y=\"106\" width=\"142\" height=\"70\" rx=\"8\" fill=\"#fff\" stroke=\"#3fb950\" stroke-width=\"2\"\/><text x=\"820\" y=\"130\" font-size=\"13.5\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"middle\">France attributes<\/text><text x=\"820\" y=\"150\" font-size=\"12\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"middle\">IRGC-linked<\/text><text x=\"820\" y=\"168\" font-size=\"12\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"middle\">Shahid Kaveh<\/text><text x=\"12\" y=\"206\" font-size=\"13\" fill=\"#7c2d12\" font-weight=\"600\" text-anchor=\"start\">Unknown: whether France&#x27;s attribution covers the second wave and the EFS incident.<\/text><text x=\"12\" y=\"226\" font-size=\"13\" fill=\"#7c2d12\" font-weight=\"400\" text-anchor=\"start\">Pro-Russian hacktivist claims (NoName057(16), Z-Pentest Alliance) remain unverified (The Record).<\/text><text x=\"12\" y=\"244\" font-size=\"12\" fill=\"#475569\" font-weight=\"400\" text-anchor=\"start\" font-style=\"italic\">Dates and figures as reported by AP\/SecurityWeek; MAG212 CYBER original diagram.<\/text><\/svg><\/div><figcaption><b>Figure 6 \u00b7 The refrigeration attacks, October\u2013November.<\/b> From the first French wave to France&#x27;s attribution. Whether the second wave and the EFS incident share an actor is unknown.<span class=\"credit\">MAG212 CYBER original timeline. Dates and figures as reported by AP\/SecurityWeek and The Record.<\/span><\/figcaption><\/figure>\n\n <div class=\"call warn\"><p style=\"margin:0\"><b>Attribution conflict.<\/b> France&#8217;s attribution is official. Earlier, pro-Russian hacktivists NoName057(16) and Z-Pentest Alliance reportedly claimed to have hacked Danfoss <a class=\"s\" href=\"https:\/\/www.securityweek.com\/us-agencies-urge-organizations-to-harden-refrigeration-controllers\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek<\/a>; The Record calls those claims unverified. <a class=\"s\" href=\"https:\/\/therecord.media\/hackers-russia-italy-noname\" target=\"_blank\" rel=\"noopener\">The Record<\/a> <span class=\"b u\">Unknown<\/span> Whether the attribution covers the second wave (overnight 31 Oct\u20132 Nov, 100+ stores in Belgium, Estonia, Ireland, Luxembourg, the Netherlands and Sweden) and the French blood bank (EFS) incident, where attackers reached three plasma cold-storage sites through supplier Coolworld and EFS says &#8220;no blood products or samples were compromised&#8221;. <a class=\"s\" href=\"https:\/\/www.securityweek.com\/over-100-european-stores-hit-as-supermarket-fridge-attacks-resume\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek<\/a> <a class=\"s\" href=\"https:\/\/www.securityweek.com\/cyberattack-hits-french-blood-bank-site-but-no-blood-products-are-compromised\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek\/AP<\/a> Iran&#8217;s response has not been reported.<\/p><\/div>\n\n <h3>Who is affected<\/h3>\n <p><span class=\"b r\">Reported<\/span> CISA, FBI, HHS, USDA and DoT said they are &#8220;aware of malicious cyber actors targeting electronic temperature controllers and commercial refrigeration controllers in retail grocery and cold storage facilities&#8221;. <a class=\"s\" href=\"https:\/\/www.securityweek.com\/us-agencies-urge-organizations-to-harden-refrigeration-controllers\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek<\/a> (advisory <a href=\"https:\/\/www.ic3.gov\/CSA\/2026\/261105.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a> not opened by MAG212). CERT-FR first flagged Danfoss AK-SM and AK-SC controllers, then Copeland\/Dixell XWEB. Danfoss said most hacked units were legacy products it no longer updated, and told customers on 13 October to disconnect them from the internet. <a class=\"s\" href=\"https:\/\/www.securityweek.com\/over-100-european-stores-hit-as-supermarket-fridge-attacks-resume\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek<\/a><\/p>\n\n <figure><div class=\"fig-scroll\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 900 220\" role=\"img\" aria-labelledby=\"censys-t censys-d\" font-family=\"Inter, 'Segoe UI', Helvetica, Arial, sans-serif\"><title id=\"censys-t\">Exposed refrigeration controllers, 9 October versus 5 November<\/title><desc id=\"censys-d\">Bar chart: Copeland\/Dixell XWEB exposure fell from 3,708 to 2,420 and Danfoss StoreView from 3,004 to 708 between 9 October and 5 November 2026, per Censys.<\/desc><defs><marker id=\"censys-ar\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#22d3ee\"\/><\/marker><marker id=\"censys-arR\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#e5484d\"\/><\/marker><marker id=\"censys-arG\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#3fb950\"\/><\/marker><pattern id=\"censys-hatch\" width=\"8\" height=\"8\" patternUnits=\"userSpaceOnUse\" patternTransform=\"rotate(45)\"><rect width=\"8\" height=\"8\" fill=\"#fde7c4\"\/><line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"8\" stroke=\"#f5a524\" stroke-width=\"3\"\/><\/pattern><\/defs><rect width=\"900\" height=\"220\" fill=\"#f7fafc\"\/><text x=\"12\" y=\"26\" font-size=\"16\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">Internet-exposed refrigeration controllers found by Censys<\/text><text x=\"12\" y=\"68\" font-size=\"14\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">Copeland\/Dixell XWEB<\/text><rect x=\"240\" y=\"50\" width=\"488\" height=\"24\" rx=\"4\" fill=\"#94a3b8\"\/><text x=\"735.8947368421052\" y=\"67\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">3,708  (9 Oct)<\/text><rect x=\"240\" y=\"80\" width=\"318\" height=\"24\" rx=\"4\" fill=\"#e5484d\"\/><text x=\"566.421052631579\" y=\"97\" font-size=\"13\" fill=\"#7f1d1d\" font-weight=\"700\" text-anchor=\"start\">2,420  (5 Nov)<\/text><text x=\"12\" y=\"140\" font-size=\"14\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">Danfoss StoreView<\/text><rect x=\"240\" y=\"122\" width=\"395\" height=\"24\" rx=\"4\" fill=\"#94a3b8\"\/><text x=\"643.2631578947369\" y=\"139\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">3,004  (9 Oct)<\/text><rect x=\"240\" y=\"152\" width=\"93\" height=\"24\" rx=\"4\" fill=\"#e5484d\"\/><text x=\"341.1578947368421\" y=\"169\" font-size=\"13\" fill=\"#7f1d1d\" font-weight=\"700\" text-anchor=\"start\">708  (5 Nov)<\/text><text x=\"12\" y=\"196\" font-size=\"12\" fill=\"#475569\" font-weight=\"400\" text-anchor=\"start\">Totals as published: 6,695 exposed on 9 Oct; 3,124 (47%) still reachable on 5 Nov. Product counts are as published and do not sum exactly.<\/text><text x=\"12\" y=\"214\" font-size=\"12\" fill=\"#475569\" font-weight=\"400\" text-anchor=\"start\" font-style=\"italic\">Source: Censys exposure sitrep (via SecurityWeek). Chart: MAG212 CYBER.<\/text><\/svg><\/div><figcaption><b>Figure 7 \u00b7 Exposed refrigeration controllers fell, but not enough.<\/b> Censys counts of internet-reachable controllers on 9 October and 5 November. Nearly half were still reachable after the first attacks.<span class=\"credit\">MAG212 CYBER original chart. Data: Censys exposure sitrep, via SecurityWeek. Product counts as published.<\/span><\/figcaption><\/figure>\n\n <h3>How the attack works and what to look for<\/h3>\n <p><span class=\"b r\">Reported advisory TTPs<\/span> Attackers exploit unpatched or internet-accessible controllers through authentication bypass, code injection and weak configurations; remotely change settings to <b>force continuous heating and defrost cycles<\/b>; and cause <b>denial-of-view<\/b> so operators can&#8217;t see the real state. <a class=\"s\" href=\"https:\/\/www.securityweek.com\/us-agencies-urge-organizations-to-harden-refrigeration-controllers\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek<\/a> Look for unexplained setpoint or defrost changes and loss of visibility on controller dashboards. No IOCs were obtained because the advisory PDF was not retrieved.<\/p>\n\n <h3>Contain, remediate and verify (in order)<\/h3>\n <ol class=\"steps\">\n  <li><b>Take control systems off the internet<\/b>, or put them behind a firewall or edge device.<\/li>\n  <li>Isolate OT networks.<\/li>\n  <li>Restrict access to trusted identities, with strong passwords and <b>phishing-resistant MFA<\/b>.<\/li>\n  <li>Patch, or replace legacy controllers the vendor no longer updates.<\/li>\n  <li>Keep offsite backups of configurations; turn on logging and monitoring. <a class=\"s\" href=\"https:\/\/www.securityweek.com\/us-agencies-urge-organizations-to-harden-refrigeration-controllers\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek<\/a><\/li>\n <\/ol>\n <p><b>Verify recovery:<\/b> confirm from outside your network that controller interfaces no longer answer, and check setpoints against known-good values.<\/p>\n\n <h3>Prevention and awareness<\/h3>\n <p><span class=\"b a\">MAG212 analysis<\/span> The official attribution turns a facilities problem into nation-state OT sabotage. MSPs serving retail, food, pharmacy or healthcare should treat any internet-reachable building controller as an incident waiting to happen. Related background: the CVSS 10 Node-RED flaw CVE-2026-58115 (Siemens SIMATIC IoT2050), which VulnCheck has seen exploited since 30 October through a single HTTP request against instances without adminAuth. <a class=\"s\" href=\"https:\/\/www.securityweek.com\/critical-node-red-flaw-exploited-in-attacks\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek<\/a><span class=\"endmark\"><\/span><\/p>\n<\/section>\n\n<!-- ============================== A7 FRONTLINE ============================== -->\n<section class=\"sheet flow\" id=\"a7\">\n <div class=\"runhead\"><span class=\"mast\"><span class=\"m\">MAG<\/span><span class=\"n\">212<\/span> <span class=\"y\">CYBER<\/span><\/span><span>Data breaches \u00b7 Education<\/span><\/div>\n <header class=\"ahead\"><span class=\"num\">07<\/span><div class=\"kick\">Data breach \u00b7 Education<\/div>\n  <h2>Frontline Education breach doubles to 3.08 million<\/h2>\n  <div class=\"chips\"><span class=\"chip\">Updated 9 Nov<\/span><span class=\"chip\">Not confirmed ransomware \u00b7 unclaimed<\/span><span class=\"chip\">Evidence: medium<\/span><\/div><\/header>\n <div class=\"glance\">\n  <div><b>Affected<\/b>3,085,266 people (Indiana AG filing)<\/div><div><b>Earlier filings<\/b>about 1.3 million<\/div>\n  <div><b>Detected<\/b>14 Aug \u00b7 contained next day<\/div><div><b>Entry<\/b>Unnamed third-party software flaw<\/div>\n <\/div>\n\n <h3>What happened and who is affected<\/h3>\n <p><span class=\"b r\">Reported<\/span> Frontline Education told the Indiana Attorney General&#8217;s Office that <b>3,085,266 people<\/b> were affected, more than twice the roughly 1.3 million in its earlier state filings. Attackers exploited a vulnerability in an <b>unnamed third-party software product<\/b> and stole data from <b>Frontline Central and School Health Management<\/b>. Those affected are school district employees and students. Depending on the person, data may include names, SSNs, dates of birth, driver&#8217;s licence, passport or other ID numbers, health insurance information such as Medicaid IDs, and student IDs. Frontline offers two years of credit monitoring for US adults and dark-web monitoring for eligible minors. No group has claimed the attack. <a class=\"s\" href=\"https:\/\/www.securityweek.com\/3-million-people-hit-by-frontline-education-data-breach\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek<\/a> <span class=\"b u\">Unknown<\/span> Which third-party product was exploited.<\/p>\n\n <figure><div class=\"fig-scroll\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 900 300\" role=\"img\" aria-labelledby=\"breaches-t breaches-d\" font-family=\"Inter, 'Segoe UI', Helvetica, Arial, sans-serif\"><title id=\"breaches-t\">Breach victim counts rose in late state filings<\/title><desc id=\"breaches-d\">Bar chart: Frontline Education from about 1.3 million to 3,085,266; Revolve from about 197,000 to 1,515,073; Amplifon Americas 85,804 in the Texas filing versus an unconfirmed reported 1.33 million.<\/desc><defs><marker id=\"breaches-ar\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#22d3ee\"\/><\/marker><marker id=\"breaches-arR\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#e5484d\"\/><\/marker><marker id=\"breaches-arG\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#3fb950\"\/><\/marker><pattern id=\"breaches-hatch\" width=\"8\" height=\"8\" patternUnits=\"userSpaceOnUse\" patternTransform=\"rotate(45)\"><rect width=\"8\" height=\"8\" fill=\"#fde7c4\"\/><line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"8\" stroke=\"#f5a524\" stroke-width=\"3\"\/><\/pattern><\/defs><rect width=\"900\" height=\"300\" fill=\"#f7fafc\"\/><text x=\"12\" y=\"26\" font-size=\"16\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">People affected, as counts changed in state filings<\/text><text x=\"12\" y=\"76\" font-size=\"15\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">Frontline Education<\/text><text x=\"190\" y=\"63\" font-size=\"12.5\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">earlier state filings<\/text><rect x=\"360\" y=\"49\" width=\"133\" height=\"20\" rx=\"4\" fill=\"#94a3b8\" stroke=\"none\"\/><text x=\"499.33333333333337\" y=\"64\" font-size=\"13\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">~1.3M<\/text><text x=\"190\" y=\"93\" font-size=\"12.5\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">Indiana AG filing, 9 Nov<\/text><rect x=\"360\" y=\"79\" width=\"316\" height=\"20\" rx=\"4\" fill=\"#e5484d\" stroke=\"none\"\/><text x=\"682.4375384615385\" y=\"94\" font-size=\"13\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">3,085,266<\/text><text x=\"12\" y=\"152\" font-size=\"15\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">Revolve<\/text><text x=\"190\" y=\"139\" font-size=\"12.5\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">earlier filings<\/text><rect x=\"360\" y=\"125\" width=\"20\" height=\"20\" rx=\"4\" fill=\"#94a3b8\" stroke=\"none\"\/><text x=\"386.2051282051282\" y=\"140\" font-size=\"13\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">~197K<\/text><text x=\"190\" y=\"169\" font-size=\"12.5\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">Indiana AG filing, 9 Nov<\/text><rect x=\"360\" y=\"155\" width=\"155\" height=\"20\" rx=\"4\" fill=\"#e5484d\" stroke=\"none\"\/><text x=\"521.3921025641025\" y=\"170\" font-size=\"13\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">1,515,073<\/text><text x=\"12\" y=\"228\" font-size=\"15\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">Amplifon Americas<\/text><text x=\"190\" y=\"215\" font-size=\"12.5\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">Texas filing (Texans)<\/text><rect x=\"360\" y=\"201\" width=\"9\" height=\"20\" rx=\"4\" fill=\"#22d3ee\" stroke=\"none\"\/><text x=\"374.80041025641026\" y=\"216\" font-size=\"13\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">85,804<\/text><text x=\"190\" y=\"245\" font-size=\"12.5\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">nationwide, UNCONFIRMED<\/text><rect x=\"360\" y=\"231\" width=\"137\" height=\"20\" rx=\"4\" fill=\"url(#breaches-hatch)\" stroke=\"#b45309\"\/><text x=\"502.70010256410256\" y=\"246\" font-size=\"13\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">~1.33M reported<\/text><text x=\"12\" y=\"284\" font-size=\"12\" fill=\"#475569\" font-weight=\"400\" text-anchor=\"start\" font-style=\"italic\">Sources: SecurityWeek (9 Nov), The Record (9 Nov). Amplifon&#x27;s 1.33M figure is reported via BreachTally\/law firms and not confirmed by Amplifon.<\/text><\/svg><\/div><figcaption><b>Figure 8 \u00b7 Counts grew in late state filings.<\/b> Frontline and Revolve counts rose sharply in Indiana filings. Amplifon&#x27;s 1.33 million is hatched because Amplifon has not confirmed it.<span class=\"credit\">MAG212 CYBER original chart. Data: state AG filings as reported by SecurityWeek and The Record (9 Nov 2026).<\/span><\/figcaption><\/figure>\n\n <h3>What school IT teams should do<\/h3>\n <p class=\"small muted\">Guidance inferred from the reporting, not stated by Frontline. There are no IOCs, commands or technical fixes here, because the compromise is on the vendor&#8217;s side.<\/p>\n <ol class=\"steps\">\n  <li>Confirm your district&#8217;s notification status with Frontline.<\/li>\n  <li>Prepare communications for parents and staff, and promote the free monitoring.<\/li>\n  <li><b>Warn staff and families about phishing that uses the leaked data<\/b> (see the awareness lesson).<\/li>\n  <li>Ask your SaaS vendors which third-party components they rely on and how fast they patch them.<\/li>\n <\/ol>\n\n <h3>Same-day updates: Amplifon and Revolve<\/h3>\n <p><b>Amplifon Americas<\/b> (hearing healthcare). <span class=\"b r\">Reported<\/span> Attackers copied files between 18 January and 8 February 2026; Amplifon noticed suspicious activity on 11 February. <a class=\"s\" href=\"https:\/\/therecord.media\/amplifon-hearing-aid-company-data-breach\" target=\"_blank\" rel=\"noopener\">The Record<\/a> Data includes government ID numbers, dates of birth, hearing and medical information and health insurance information; SSNs and financial information for some people. Amplifon says it knows of no misuse. <a class=\"s\" href=\"https:\/\/www.securityweek.com\/amplifon-americas-data-breach-impacts-1-3-million\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek<\/a><\/p>\n <div class=\"call warn\"><p style=\"margin:0\"><b>Conflicting count.<\/b> The Texas filing lists <b>85,804 Texans<\/b> (plus 1,027 in Vermont). <a class=\"s\" href=\"https:\/\/therecord.media\/amplifon-hearing-aid-company-data-breach\" target=\"_blank\" rel=\"noopener\">The Record<\/a> A nationwide figure of about <b>1.33 million<\/b> has been reported, sourced through BreachTally and class-action law firms, but <b>not confirmed by Amplifon<\/b>. <a class=\"s\" href=\"https:\/\/www.securityweek.com\/amplifon-americas-data-breach-impacts-1-3-million\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek<\/a> <a class=\"s\" href=\"https:\/\/www.breachtally.com\/notice\/tx-ag\/BR-0005495\" target=\"_blank\" rel=\"noopener\">BreachTally<\/a><\/p><\/div>\n <p><b>Revolve<\/b> (fashion e-commerce). <span class=\"b r\">Reported<\/span> Revolve told the Indiana AG that <b>1,515,073 people<\/b> were affected, up from about 197,000 in earlier filings. The intrusion happened on 11 September and Revolve learned of it on 29 September. Card numbers and expiry dates were exposed for customers with stored payment methods; the way in is undisclosed. <a class=\"s\" href=\"https:\/\/www.securityweek.com\/revolve-puts-data-breach-victim-count-at-1-5-million\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek<\/a><\/p>\n <p><span class=\"b a\">MAG212 analysis<\/span> None of these is confirmed ransomware or claimed, so we call them data breaches. In all three, the real scale surfaced weeks or months later in state filings: treat early counts as provisional.<span class=\"endmark\"><\/span><\/p>\n<\/section>\n\n<!-- ============================== A8 BEE-JS ============================== -->\n<section class=\"sheet flow\" id=\"a8\">\n <div class=\"runhead\"><span class=\"mast\"><span class=\"m\">MAG<\/span><span class=\"n\">212<\/span> <span class=\"y\">CYBER<\/span><\/span><span>Supply chain \u00b7 CI\/CD<\/span><\/div>\n <header class=\"ahead\"><span class=\"num\">08<\/span><div class=\"kick\">Software supply chain<\/div>\n  <h2>Signed, provenanced and malicious: bee-js and Swarm Desktop<\/h2>\n  <div class=\"chips\"><span class=\"chip hot\">Malicious releases shipped<\/span><span class=\"chip\">Socket research 9 Nov, 14:52 UTC<\/span><span class=\"chip ok\">Evidence: strong<\/span><\/div><\/header>\n <div class=\"glance\">\n  <div><b>Malicious<\/b>@ethersphere\/bee-js 13.3.0 (npm) \u00b7 Swarm Desktop 0.56.2<\/div><div><b>Safe<\/b>bee-js 13.2.0 \u00b7 Desktop 0.56.3 (unconfirmed at 10:30 UTC)<\/div>\n  <div><b>npm window<\/b>\u224875 minutes on 9 Nov<\/div><div><b>Assessed actor<\/b>Same as SleepyDuck\/EtherDuck (Socket)<\/div>\n <\/div>\n\n <h3>What happened and who is affected<\/h3>\n <p><span class=\"b c\">Confirmed<\/span> Compromised maintainer accounts pushed malicious <b>@ethersphere\/bee-js 13.3.0<\/b> to npm and <b>Swarm Desktop 0.56.2<\/b> as a GitHub release for Linux, macOS and Windows. npm removed 13.3.0 about 75 minutes after publication; 13.2.0 is the safe version. The 0.56.2 tag was deleted at 09:04 UTC on 9 November; 0.56.3 is recommended but had not been published as of 10:30 UTC. <a class=\"s\" href=\"https:\/\/socket.dev\/blog\/bee-js-compromise\" target=\"_blank\" rel=\"noopener\">Socket<\/a> <a class=\"s\" href=\"https:\/\/thehackernews.com\/2026\/11\/hackers-compromise-etherspheres-bee-js.html\" target=\"_blank\" rel=\"noopener\">The Hacker News<\/a> Socket assesses the actor as the one behind the SleepyDuck\/EtherDuck Open VSX campaign, based on on-chain history, shared payload hashes and identical persistence names. <span class=\"b u\">Unknown<\/span> How the GitHub accounts were compromised, download counts for 13.3.0, and whether Ethersphere has published its own advisory.<\/p>\n\n <h3>How the attack works<\/h3>\n <p><span class=\"b c\">Confirmed<\/span> The attacker used <code>nugaon<\/code>, a maintainer with force-push rights to an unprotected <code>master<\/code>, and <code>bee-worker<\/code>, the release bot. In bee-js, unsigned commit <code>de2f74e<\/code> turned <code>scripts\/generate-version.cjs<\/code> into a loader and renamed <code>prepare<\/code> to <code>postinstall<\/code>; a GitHub release then triggered the legitimate publish workflow, whose environment had no required reviewers and no tag policy, so npm provenance is valid. In Swarm Desktop, unsigned branch <code>emergency\/0.56.2<\/code> added the loader, and a manually dispatched <code>pre-release.yml<\/code> that accepts any branch and holds Apple and Windows signing certificates built, signed and notarized the trojanized app. <a class=\"s\" href=\"https:\/\/socket.dev\/blog\/bee-js-compromise\" target=\"_blank\" rel=\"noopener\">Socket<\/a><\/p>\n\n <figure><div class=\"fig-scroll\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 900 410\" role=\"img\" aria-labelledby=\"beejs-t beejs-d\" font-family=\"Inter, 'Segoe UI', Helvetica, Arial, sans-serif\"><title id=\"beejs-t\">bee-js and Swarm Desktop supply-chain compromise chain<\/title><desc id=\"beejs-d\">Hijacked GitHub accounts pushed unsigned changes that legitimate release workflows built into a validly provenanced npm package and signed desktop app; the payload loads code, steals Swarm keys and installs persistence. A bar shows the 75-minute npm exposure window on 9 November, 00:09:50 to 01:24:58 UTC.<\/desc><defs><marker id=\"beejs-ar\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#22d3ee\"\/><\/marker><marker id=\"beejs-arR\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#e5484d\"\/><\/marker><marker id=\"beejs-arG\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#3fb950\"\/><\/marker><pattern id=\"beejs-hatch\" width=\"8\" height=\"8\" patternUnits=\"userSpaceOnUse\" patternTransform=\"rotate(45)\"><rect width=\"8\" height=\"8\" fill=\"#fde7c4\"\/><line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"8\" stroke=\"#f5a524\" stroke-width=\"3\"\/><\/pattern><\/defs><rect width=\"900\" height=\"410\" fill=\"#f7fafc\"\/><rect x=\"12\" y=\"20\" width=\"196\" height=\"104\" rx=\"10\" fill=\"#fde8e8\" stroke=\"#e5484d\" stroke-width=\"2\"\/><text x=\"24\" y=\"46\" font-size=\"16\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">Hijacked GitHub<\/text><text x=\"24\" y=\"70\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">nugaon (maintainer,<\/text><text x=\"24\" y=\"90\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">force-push to master)<\/text><text x=\"24\" y=\"110\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">bee-worker (release bot)<\/text><line x1=\"210\" y1=\"72\" x2=\"238\" y2=\"72\" stroke=\"#e5484d\" stroke-width=\"2.5\" marker-end=\"url(#beejs-arR)\"\/><rect x=\"242\" y=\"20\" width=\"196\" height=\"104\" rx=\"10\" fill=\"#fff4e0\" stroke=\"#f5a524\" stroke-width=\"2\"\/><text x=\"254\" y=\"46\" font-size=\"16\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">Unsigned changes<\/text><text x=\"254\" y=\"70\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">bee-js: commit de2f74e<\/text><text x=\"254\" y=\"90\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">prepare \u2192 postinstall<\/text><text x=\"254\" y=\"110\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">desktop: emergency\/0.56.2<\/text><line x1=\"440\" y1=\"72\" x2=\"468\" y2=\"72\" stroke=\"#e5484d\" stroke-width=\"2.5\" marker-end=\"url(#beejs-arR)\"\/><rect x=\"472\" y=\"20\" width=\"200\" height=\"104\" rx=\"10\" fill=\"#fff4e0\" stroke=\"#f5a524\" stroke-width=\"2\"\/><text x=\"484\" y=\"46\" font-size=\"16\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">Legit workflows<\/text><text x=\"484\" y=\"70\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">publish env: no reviewers,<\/text><text x=\"484\" y=\"90\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">no tag policy;<\/text><text x=\"484\" y=\"110\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">pre-release.yml has certs<\/text><line x1=\"674\" y1=\"72\" x2=\"702\" y2=\"72\" stroke=\"#e5484d\" stroke-width=\"2.5\" marker-end=\"url(#beejs-arR)\"\/><rect x=\"706\" y=\"20\" width=\"184\" height=\"104\" rx=\"10\" fill=\"#eef6fb\" stroke=\"#22d3ee\" stroke-width=\"2\"\/><text x=\"718\" y=\"46\" font-size=\"16\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">Trusted-looking<\/text><text x=\"718\" y=\"70\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">npm 13.3.0 with valid<\/text><text x=\"718\" y=\"90\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">provenance; desktop<\/text><text x=\"718\" y=\"110\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">signed + notarized<\/text><line x1=\"798\" y1=\"126\" x2=\"798\" y2=\"156\" stroke=\"#e5484d\" stroke-width=\"2.5\" marker-end=\"url(#beejs-arR)\"\/><rect x=\"608\" y=\"160\" width=\"282\" height=\"98\" rx=\"10\" fill=\"#eef6fb\" stroke=\"#22d3ee\" stroke-width=\"2\"\/><text x=\"620\" y=\"186\" font-size=\"16\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">Stage 1 \u00b7 loader<\/text><text x=\"620\" y=\"210\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">fetches JS from<\/text><text x=\"620\" y=\"230\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">api.frameworkmetrics[.]xyz<\/text><text x=\"620\" y=\"250\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">header X-Ethersphere: 1<\/text><rect x=\"326\" y=\"160\" width=\"264\" height=\"98\" rx=\"10\" fill=\"#eef6fb\" stroke=\"#22d3ee\" stroke-width=\"2\"\/><text x=\"338\" y=\"186\" font-size=\"16\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">Stage 2 \u00b7 theft<\/text><text x=\"338\" y=\"210\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">Swarm config.yaml<\/text><text x=\"338\" y=\"230\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">(plaintext password)<\/text><text x=\"338\" y=\"250\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">+ swarm.key<\/text><rect x=\"12\" y=\"160\" width=\"296\" height=\"98\" rx=\"10\" fill=\"#fde8e8\" stroke=\"#e5484d\" stroke-width=\"2\"\/><text x=\"24\" y=\"186\" font-size=\"16\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">Stage 3 \u00b7 persistence<\/text><text x=\"24\" y=\"210\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">macOS\/Linux: Go backdoor ~\/.solidity\/<\/text><text x=\"24\" y=\"230\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">hub address read from Ethereum<\/text><text x=\"24\" y=\"250\" font-size=\"13\" fill=\"#334155\" font-weight=\"400\" text-anchor=\"start\">Windows: ScreenConnect as SYSTEM<\/text><line x1=\"606\" y1=\"210\" x2=\"593\" y2=\"210\" stroke=\"#e5484d\" stroke-width=\"2.5\" marker-end=\"url(#beejs-arR)\"\/><line x1=\"324\" y1=\"210\" x2=\"311\" y2=\"210\" stroke=\"#e5484d\" stroke-width=\"2.5\" marker-end=\"url(#beejs-arR)\"\/><text x=\"12\" y=\"292\" font-size=\"15\" fill=\"#0f172a\" font-weight=\"700\" text-anchor=\"start\">npm exposure window, 9 Nov (UTC)<\/text><rect x=\"12\" y=\"302\" width=\"878\" height=\"30\" rx=\"6\" fill=\"#e2e8f0\"\/><rect x=\"84\" y=\"302\" width=\"550\" height=\"30\" rx=\"6\" fill=\"#e5484d\"\/><text x=\"91.94722222222222\" y=\"322\" font-size=\"14\" fill=\"#ffffff\" font-weight=\"700\" text-anchor=\"start\">00:09:50 \u2192 01:24:58  \u224875 minutes<\/text><text x=\"12\" y=\"350\" font-size=\"12\" fill=\"#475569\" font-weight=\"400\" text-anchor=\"start\">00:00<\/text><text x=\"888\" y=\"350\" font-size=\"12\" fill=\"#475569\" font-weight=\"400\" text-anchor=\"end\">02:00<\/text><text x=\"12\" y=\"376\" font-size=\"13.5\" fill=\"#7f1d1d\" font-weight=\"700\" text-anchor=\"start\">Installed 13.3.0 with install scripts in this window? Treat the machine or CI job as compromised, even if the install failed.<\/text><text x=\"12\" y=\"400\" font-size=\"12\" fill=\"#475569\" font-weight=\"400\" text-anchor=\"start\" font-style=\"italic\">Source: Socket primary research (9 Nov). MAG212 CYBER original diagram.<\/text><\/svg><\/div><figcaption><b>Figure 9 \u00b7 From hijacked accounts to signed malware.<\/b> Legitimate release workflows turned unsigned attacker changes into a validly provenanced npm package and a signed, notarized desktop app. The bar shows the npm exposure window.<span class=\"credit\">MAG212 CYBER original diagram, based on Socket&#x27;s primary research (9 Nov 2026).<\/span><\/figcaption><\/figure>\n\n <h3>What to look for (published indicators)<\/h3>\n <div class=\"t-wrap\"><table class=\"ioc\">\n  <thead><tr><th>Type<\/th><th>Indicator (defanged)<\/th><\/tr><\/thead><tbody>\n  <tr><td>Package<\/td><td><code>@ethersphere\/bee-js@13.3.0<\/code> \u00b7 tarball SHA-256 <code>d01fdf241aa9e0a1ba6ebc19f8f667af1bf652745021c5050126cb7036f7ce58<\/code><\/td><\/tr>\n  <tr><td>Domain<\/td><td><code>api.frameworkmetrics[.]xyz<\/code> (registered 6 Nov)<\/td><\/tr>\n  <tr><td>Hubs, port 4912<\/td><td><code>193.57.9[.]155<\/code> (current), <code>193.57.9[.]17<\/code>, <code>178.16.54[.]222<\/code>, <code>107.189.27[.]223<\/code>, <code>107.189.27[.]46<\/code>, <code>91.108.240[.]156<\/code>, <code>107.189.16[.]215<\/code><\/td><\/tr>\n  <tr><td>Payload URL<\/td><td><code>hxxp:\/\/107.189.27[.]46:3000\/app.js<\/code><\/td><\/tr>\n  <tr><td>ScreenConnect relay<\/td><td><code>185.232.84[.]169:8041<\/code><\/td><\/tr>\n  <tr><td>Ethereum contracts<\/td><td><code>0xf8a900Db50b3331be6B768bA460BB59f3E40C344<\/code> (eth_call data <code>0x02d91518<\/code>) \u00b7 <code>0x6a82595EEea0f4FDFB3aE13A2687BcbBE626e94B<\/code><\/td><\/tr>\n  <tr><td>Persistence<\/td><td><code>~\/.solidity\/<\/code> \u00b7 <code>solidity-langsupport-runner.service<\/code> \u00b7 <code>com.solidity.langsupport.runner<\/code> \u00b7 service <code>ScreenConnect Client (5cbe79c9c25524df)<\/code><\/td><\/tr>\n  <tr><td>SHA-256<\/td><td><code>generate-version.cjs<\/code> ee2f762e9ed3fd89f106e0b80c2e923bf1aed9a280277d3d998a5902c4d9ec0f \u00b7 desktop <code>index.js<\/code> f81315968e679b48f6bdff1c9b928bb223230d07f44d7948412c2250c2a14deb \u00b7 stage 3 darwin_arm64 fae61f31f00988fdc5cc9e7272b51e08af2e245d81003237875415930fd27358 \u00b7 stage 3 linux_amd64 9b73e7cd4e1425e770392549d8df46c706139ef476f4f7b9ac405165dc8d9696 \u00b7 <code>invoke.ps1<\/code> 37d14bff30762ca701e9c1f8bc6c57c065bb20ae3a2208cb7411a6530610f08e<\/td><\/tr>\n  <tr><td>Log string<\/td><td><code>Bee Desktop version: 0.56.2 (production)<\/code> in <code>bee-desktop.log<\/code><\/td><\/tr>\n <\/tbody><\/table><p class=\"small muted\" style=\"margin:4px 0 0\">Source: <a href=\"https:\/\/socket.dev\/blog\/bee-js-compromise\" target=\"_blank\" rel=\"noopener\">Socket<\/a>, which also lists commit hashes and the npm integrity string.<\/p><\/div>\n\n <h3>Investigate, contain and remediate (in order)<\/h3>\n <ol class=\"steps\">\n  <li>Search lockfiles, caches and internal registries for 13.3.0; pin 13.2.0 and purge mirrors.<\/li>\n  <li>Treat any machine or CI job that installed 13.3.0 with install scripts enabled <b>between 00:09:50 and 01:24:58 UTC on 9 November<\/b> as compromised, <b>even if the install failed<\/b>.<\/li>\n  <li>Rotate every credential those machines or jobs could reach, including CI OIDC-trusted cloud credentials.<\/li>\n  <li>Swarm Desktop users: assume the node password and key are stolen and <b>move funds to a new key from a clean machine<\/b>.<\/li>\n  <li><b>Manually remove<\/b> <code>~\/.solidity\/<\/code>, the LaunchAgent, the systemd unit and the ScreenConnect service; reinstalling does not remove them.<\/li>\n  <li>Hunt in DNS and proxy logs for the domain and IPs above. <a class=\"s\" href=\"https:\/\/socket.dev\/blog\/bee-js-compromise\" target=\"_blank\" rel=\"noopener\">Socket<\/a><\/li>\n <\/ol>\n\n <h3>Verify recovery<\/h3>\n <p>Confirm lockfiles resolve to 13.2.0, the persistence artefacts are gone, and nothing still connects to the hub or relay addresses.<\/p>\n\n <h3>Prevention and awareness<\/h3>\n <p><span class=\"b c\">Socket&#8217;s advice<\/span> Verify a released commit sits on a protected branch or came from a merged release PR; require reviewers on publish environments and restrict which tags can deploy; don&#8217;t expose signing credentials to manually dispatched workflows; scope and rotate release-bot tokens. <a class=\"s\" href=\"https:\/\/socket.dev\/blog\/bee-js-compromise\" target=\"_blank\" rel=\"noopener\">Socket<\/a> <span class=\"b a\">MAG212 analysis<\/span> Valid provenance and notarization prove which pipeline built the code, not that the code is benign. Direct impact is probably limited to Swarm and Ethereum users, but the CI\/CD lesson applies to anyone who publishes software, and it fits GitHub&#8217;s announced change to block <code>pull_request_target<\/code> workflows by default from 2 December. <a class=\"s\" href=\"https:\/\/socket.dev\/blog\/github-to-block-pull-request-target\" target=\"_blank\" rel=\"noopener\">Socket<\/a><span class=\"endmark\"><\/span><\/p>\n<\/section>\n\n<!-- ============================== ACTION DESK ============================== -->\n<section class=\"sheet flow\" id=\"desk\">\n <div class=\"runhead\"><span class=\"mast\"><span class=\"m\">MAG<\/span><span class=\"n\">212<\/span> <span class=\"y\">CYBER<\/span><\/span><span>Defender&#8217;s Action Desk<\/span><\/div>\n <h2 class=\"sec\">Defender&#8217;s Action Desk<\/h2>\n <p class=\"muted\">A prioritised checklist built from today&#8217;s stories. Tick what applies to your estate; skip what doesn&#8217;t. <span class=\"b a\">MAG212 analysis<\/span> for the ordering; each action&#8217;s source is in its article.<\/p>\n <ul class=\"check\">\n  <li><span class=\"when\">Now<\/span><b>Alpine\/musl sshd:<\/b> <code>PasswordAuthentication no<\/code>, upgrade <code>openssh<\/code>, restart sshd, grep <code>\/var\/log\/messages<\/code> for <code>Accepted password for<\/code> on passwordless accounts. <a href=\"#a1\">\u2192 01<\/a><\/li>\n  <li><span class=\"when\">Now<\/span><b>SonicWall:<\/b> upgrade to 7.3.4-7013 \/ 8.2.3-8015, SAML SSL-VPN portals first; restrict the management interface. <a href=\"#a2\">\u2192 02<\/a><\/li>\n  <li><span class=\"when\">Now<\/span><b>NAS:<\/b> close port 32400, turn off Plex Remote Access, reinstall Plex 1.43.3.10861+, rotate passwords. <a href=\"#a3\">\u2192 03<\/a><\/li>\n  <li><span class=\"when\">Now<\/span><b>bee-js:<\/b> search lockfiles for 13.3.0; treat installs in the 9 Nov window as compromised; rotate CI credentials. <a href=\"#a8\">\u2192 08<\/a><\/li>\n  <li><span class=\"when w2\">Today<\/span><b>AWS:<\/b> list roles trusting vendor accounts (start with <code>805246085872<\/code>); delete unused; add <code>aws:SourceIp<\/code>\/<code>aws:SourceVpce<\/code>; CloudTrail from 1 Oct. <a href=\"#a5\">\u2192 05<\/a><\/li>\n  <li><span class=\"when w2\">Today<\/span><b>FreeSWITCH \/ GPUStack \/ Faspex:<\/b> 1.11.3 \u00b7 2.2.2+ \u00b7 5.0.19 PL1; rotate GPUStack cloud and worker secrets. <a href=\"#a4\">\u2192 04<\/a><\/li>\n  <li><span class=\"when w2\">Today<\/span><b>Building &amp; OT controllers:<\/b> check from outside that refrigeration and other controllers aren&#8217;t internet-reachable. <a href=\"#a6\">\u2192 06<\/a><\/li>\n  <li><span class=\"when w3\">This week<\/span><b>Schools:<\/b> confirm Frontline notification status; send the phishing warning in the awareness lesson. <a href=\"#a7\">\u2192 07<\/a><\/li>\n  <li><span class=\"when w3\">This week<\/span><b>CI\/CD:<\/b> require reviewers on publish environments; keep signing secrets away from manually dispatched workflows. <a href=\"#a8\">\u2192 08<\/a><\/li>\n  <li><span class=\"when w3\">This week<\/span><b>AI coding tools:<\/b> scan <code>.claude\/<\/code>, <code>.cursor\/<\/code>, <code>.gemini\/<\/code>, <code>.specstory\/<\/code> for committed secrets (Briefly noted).<\/li>\n <\/ul>\n\n <h3>KEV deadlines falling this week<\/h3>\n <div class=\"t-wrap\"><table>\n  <thead><tr><th>CVE<\/th><th>Product<\/th><th>Added<\/th><th>Federal due date<\/th><\/tr><\/thead><tbody>\n  <tr><td>CVE-2026-48356<\/td><td>Adobe Commerce<\/td><td>27 Oct<\/td><td><b>10 Nov (today)<\/b><\/td><\/tr>\n  <tr><td>CVE-2026-111497<\/td><td>Google Brotli<\/td><td>27 Oct<\/td><td><b>10 Nov (today)<\/b><\/td><\/tr>\n  <tr><td>CVE-2026-41709<\/td><td>Broadcom VMware ESX<\/td><td>28 Oct<\/td><td>11 Nov<\/td><\/tr>\n  <tr><td>CVE-2026-123158<\/td><td>OpenSSH<\/td><td>9 Nov<\/td><td>12 Nov<\/td><\/tr>\n  <tr><td>CVE-2026-116779<\/td><td>FreeSWITCH<\/td><td>9 Nov<\/td><td>12 Nov<\/td><\/tr>\n  <tr><td>CVE-2026-102895<\/td><td>GPUStack<\/td><td>9 Nov<\/td><td>12 Nov<\/td><\/tr>\n  <tr><td>CVE-2026-123218<\/td><td>IBM Aspera Faspex<\/td><td>9 Nov<\/td><td>12 Nov<\/td><\/tr>\n  <tr><td>CVE-2026-118527<\/td><td>Ivanti Connect Secure<\/td><td>30 Oct<\/td><td>13 Nov<\/td><\/tr>\n  <tr><td>CVE-2026-19868<\/td><td>SonicWall SonicOS SSLVPN<\/td><td>6 Nov<\/td><td>20 Nov<\/td><\/tr>\n <\/tbody><\/table><p class=\"small muted\" style=\"margin:4px 0 0\">Source: <a href=\"https:\/\/raw.githubusercontent.com\/cisagov\/kev-data\/develop\/known_exploited_vulnerabilities.json\" target=\"_blank\" rel=\"noopener\">CISA KEV catalog v2026.11.09<\/a>. Federal deadlines apply to US agencies, but they&#8217;re a useful priority signal for everyone. Related: Singapore&#8217;s CSA updated its alert on exploited Cisco ASA\/FTD SSL VPN reload flaw CVE-2026-76418 (KEV since 29 Oct) on 10 Nov. <a class=\"s\" href=\"https:\/\/www.csa.gov.sg\/alerts-and-advisories\/alerts\/al-2026-159\/\" target=\"_blank\" rel=\"noopener\">CSA Singapore<\/a><\/p><\/div>\n\n <div class=\"call pend\" id=\"watch\"><h4>\u23f3 Watch today: not confirmed at the research cutoff<\/h4>\n  <ul class=\"small\" style=\"margin-bottom:0\">\n   <li><b>Microsoft Patch Tuesday<\/b> was not published. We give no counts or zero-days until the <a href=\"https:\/\/msrc.microsoft.com\/update-guide\" target=\"_blank\" rel=\"noopener\">MSRC Update Guide<\/a> is live. Separately, Microsoft Entra Device Registration CVE-2026-109469 (CVSS 10.0) was listed on 7 Nov as already mitigated by Microsoft, with no customer action and no exploitation. <a class=\"s\" href=\"https:\/\/www.oflight.co.jp\/en\/columns\/vulnerability-digest-2026-11-07\" target=\"_blank\" rel=\"noopener\">Oflight<\/a><\/li>\n   <li><b>Fortinet<\/b> patched critical flaws in FortiOS, FortiManager, FortiAnalyzer, FortiMail and FortiAuthenticator on 21\u201322 Oct and said it would publish CVE IDs by 10 Nov; not confirmed live. Fixed versions circulating come from a social post and are <b>unverified<\/b>. watchTowr expects rapid exploitation and advises taking internet-exposed management interfaces offline or restricting them; no exploitation is confirmed. <a class=\"s\" href=\"https:\/\/cybernews.com\/security\/fortinet-critical-flaws-patches-november-disclosure\/\" target=\"_blank\" rel=\"noopener\">Cybernews<\/a><\/li>\n   <li><b>Chrome:<\/b> a 10 Nov SecurityWeek headline reports an update fixing an exploited XML zero-day. We didn&#8217;t read the article, so no version or CVE is given. <a class=\"s\" href=\"https:\/\/www.securityweek.com\/chrome-update-patches-exploited-xml-zero-day-eighth-this-year\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek<\/a><\/li>\n   <li><b>ICS:<\/b> Siemens and Schneider advisories are likely today (<span class=\"b a\">MAG212 analysis<\/span>); none verified. Latest confirmed CISA ICS advisory: ICSA-26-307-01 (3 Nov). <a class=\"s\" href=\"https:\/\/content.govdelivery.com\/accounts\/USDHSCISA\/bulletins\/4317fd8\" target=\"_blank\" rel=\"noopener\">CISA<\/a><\/li>\n   <li><b>Also open:<\/b> Swarm Desktop 0.56.3 release; G7 discussion of joint cyber measures (9\u201310 Nov); France&#8217;s announced EU sanctions and arrest warrants. <a class=\"s\" href=\"https:\/\/therecord.media\/hackers-russia-italy-noname\" target=\"_blank\" rel=\"noopener\">The Record<\/a><\/li>\n  <\/ul><\/div>\n<\/section>\n\n<!-- ============================== LESSON ============================== -->\n<section class=\"sheet flow\" id=\"lesson\">\n <div class=\"runhead\"><span class=\"mast\"><span class=\"m\">MAG<\/span><span class=\"n\">212<\/span> <span class=\"y\">CYBER<\/span><\/span><span>Awareness lesson<\/span><\/div>\n <h2 class=\"sec\">Awareness lesson: &#8220;The breach letter is the bait&#8221;<\/h2>\n <div class=\"cols\">\n  <div class=\"call info\" style=\"margin-top:0\"><h4>For employees, staff and families<\/h4>\n   <p>Frontline (3.08 million school staff and students), Amplifon and Revolve are all sending breach notices this week. Expect phishing that quotes <b>real<\/b> personal details. <a class=\"s\" href=\"https:\/\/www.securityweek.com\/3-million-people-hit-by-frontline-education-data-breach\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek<\/a><\/p>\n   <ul>\n    <li>An email that knows your date of birth or employee ID is <b>not proof<\/b> it&#8217;s genuine.<\/li>\n    <li>Reach any monitoring offer only through your district&#8217;s or employer&#8217;s official site, never a link in an unsolicited message.<\/li>\n    <li>Nobody legitimate needs your password or a one-time code to &#8220;verify&#8221; your monitoring.<\/li>\n    <li>Not sure? Forward it to IT and delete it.<\/li>\n   <\/ul><\/div>\n  <div class=\"call dark\" style=\"margin-top:0\"><h4 style=\"color:#fff\">For leaders and owners<\/h4>\n   <p>This week&#8217;s incidents all ran through something an organisation had deliberately trusted. <span class=\"b a\">MAG212 analysis<\/span><\/p>\n   <p><b style=\"color:var(--cyan)\">Ask your team for one page<\/b> listing standing vendor access, parallel login methods and internet-reachable management interfaces, each with a named owner and a reason it still exists.<\/p>\n   <p>Removing a trust nobody needs costs nothing, and it&#8217;s the cheapest control in this issue.<\/p><\/div>\n <\/div>\n <figure><div class=\"fig-scroll\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 900 250\" role=\"img\" aria-labelledby=\"doors-t doors-d\" font-family=\"Inter, 'Segoe UI', Helvetica, Arial, sans-serif\"><title id=\"doors-t\">Four trusted doors attackers used this week<\/title><desc id=\"doors-d\">Four doors: an old vendor IAM role, a second login method beside SAML MFA, a signed release from a real pipeline, and a refrigeration controller left on the internet.<\/desc><defs><marker id=\"doors-ar\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#22d3ee\"\/><\/marker><marker id=\"doors-arR\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#e5484d\"\/><\/marker><marker id=\"doors-arG\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0L10 5L0 10z\" fill=\"#3fb950\"\/><\/marker><pattern id=\"doors-hatch\" width=\"8\" height=\"8\" patternUnits=\"userSpaceOnUse\" patternTransform=\"rotate(45)\"><rect width=\"8\" height=\"8\" fill=\"#fde7c4\"\/><line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"8\" stroke=\"#f5a524\" stroke-width=\"3\"\/><\/pattern><\/defs><rect width=\"900\" height=\"250\" fill=\"#0b1830\"\/><text x=\"450\" y=\"34\" font-size=\"20\" fill=\"#ffffff\" font-weight=\"800\" text-anchor=\"middle\">Every trust you grant is an attack path<\/text><rect x=\"24\" y=\"58\" width=\"200\" height=\"150\" rx=\"10\" fill=\"#12223f\" stroke=\"#22d3ee\" stroke-width=\"2\"\/><rect x=\"94\" y=\"72\" width=\"60\" height=\"78\" rx=\"4\" fill=\"#0e2547\" stroke=\"#22d3ee\" stroke-width=\"2\"\/><path d=\"M94 72 L136 80 L136 158 L94 150 Z\" fill=\"#22d3ee\" fill-opacity=\".3\"\/><circle cx=\"128\" cy=\"114\" r=\"3.5\" fill=\"#f5a524\"\/><text x=\"124\" y=\"176\" font-size=\"14.5\" fill=\"#ffffff\" font-weight=\"700\" text-anchor=\"middle\">Old vendor IAM role<\/text><text x=\"124\" y=\"196\" font-size=\"12.5\" fill=\"#a5b4cb\" font-weight=\"400\" text-anchor=\"middle\">nobody used it (Qubole)<\/text><rect x=\"242\" y=\"58\" width=\"200\" height=\"150\" rx=\"10\" fill=\"#12223f\" stroke=\"#22d3ee\" stroke-width=\"2\"\/><rect x=\"312\" y=\"72\" width=\"60\" height=\"78\" rx=\"4\" fill=\"#0e2547\" stroke=\"#22d3ee\" stroke-width=\"2\"\/><path d=\"M312 72 L354 80 L354 158 L312 150 Z\" fill=\"#22d3ee\" fill-opacity=\".3\"\/><circle cx=\"346\" cy=\"114\" r=\"3.5\" fill=\"#f5a524\"\/><text x=\"342\" y=\"176\" font-size=\"14.5\" fill=\"#ffffff\" font-weight=\"700\" text-anchor=\"middle\">Second login method<\/text><text x=\"342\" y=\"196\" font-size=\"12.5\" fill=\"#a5b4cb\" font-weight=\"400\" text-anchor=\"middle\">beside SAML MFA (SonicWall)<\/text><rect x=\"460\" y=\"58\" width=\"200\" height=\"150\" rx=\"10\" fill=\"#12223f\" stroke=\"#22d3ee\" stroke-width=\"2\"\/><rect x=\"530\" y=\"72\" width=\"60\" height=\"78\" rx=\"4\" fill=\"#0e2547\" stroke=\"#22d3ee\" stroke-width=\"2\"\/><path d=\"M530 72 L572 80 L572 158 L530 150 Z\" fill=\"#22d3ee\" fill-opacity=\".3\"\/><circle cx=\"564\" cy=\"114\" r=\"3.5\" fill=\"#f5a524\"\/><text x=\"560\" y=\"176\" font-size=\"14.5\" fill=\"#ffffff\" font-weight=\"700\" text-anchor=\"middle\">Signed release<\/text><text x=\"560\" y=\"196\" font-size=\"12.5\" fill=\"#a5b4cb\" font-weight=\"400\" text-anchor=\"middle\">from a real pipeline (bee-js)<\/text><rect x=\"678\" y=\"58\" width=\"200\" height=\"150\" rx=\"10\" fill=\"#12223f\" stroke=\"#22d3ee\" stroke-width=\"2\"\/><rect x=\"748\" y=\"72\" width=\"60\" height=\"78\" rx=\"4\" fill=\"#0e2547\" stroke=\"#22d3ee\" stroke-width=\"2\"\/><path d=\"M748 72 L790 80 L790 158 L748 150 Z\" fill=\"#22d3ee\" fill-opacity=\".3\"\/><circle cx=\"782\" cy=\"114\" r=\"3.5\" fill=\"#f5a524\"\/><text x=\"778\" y=\"176\" font-size=\"14.5\" fill=\"#ffffff\" font-weight=\"700\" text-anchor=\"middle\">Controller online<\/text><text x=\"778\" y=\"196\" font-size=\"12.5\" fill=\"#a5b4cb\" font-weight=\"400\" text-anchor=\"middle\">left reachable (France)<\/text><text x=\"450\" y=\"236\" font-size=\"12.5\" fill=\"#22d3ee\" font-weight=\"600\" text-anchor=\"middle\">Leaders: ask for one page listing standing vendor access, parallel login methods and reachable management interfaces, each with an owner.<\/text><\/svg><\/div><figcaption><b>Figure 10 \u00b7 Four trusted doors used this week.<\/b> Each of this week&#x27;s major incidents ran through access an organisation chose to grant.<span class=\"credit\">Conceptual MAG212 CYBER original illustration.<\/span><\/figcaption><\/figure>\n\n <h3>Briefly noted<\/h3>\n <ul>\n  <li><b>Claude Code secrets in public repos (7 Nov, ~3 days old).<\/b> <span class=\"b r\">Reported<\/span> Apiiro found the &#8220;Yes, and don&#8217;t ask again&#8221; option saves approved commands verbatim, including literal secrets, to <code>.claude\/settings.local.json<\/code>. Of 104,185 public copies, 1,122 contain at least one secret (1,379 distinct); Gitleaks and TruffleHog missed 215 of those files. No Anthropic statement was reported; an earlier bug report was closed by a bot. <a class=\"s\" href=\"https:\/\/thehackernews.com\/2026\/11\/claude-codes-dont-ask-again-file.html\" target=\"_blank\" rel=\"noopener\">The Hacker News<\/a> <a class=\"s\" href=\"https:\/\/apiiro.com\/blog\/coding-agents-leaking-secrets-github-dont-ask-again\" target=\"_blank\" rel=\"noopener\">Apiiro<\/a> Rotate exposed secrets first, then untrack the file:\n   <div class=\"cmd\"><div class=\"cmd-h\"><b>Untrack the file<\/b><span>OS: any<\/span><span>Shell: any, inside the repo<\/span><span>Privileges: none<\/span><span class=\"chg\">CHANGE (git index only)<\/span><\/div>\n<pre>git rm --cached .claude\/settings.local.json\n<span class=\"cm\"># then add .claude\/settings.local.json to .gitignore and commit<\/span><\/pre>\n   <div class=\"cmd-f\">Removes the file from version control but keeps it on disk; history still contains old copies, so rotation comes first. Not tested by MAG212 CYBER; syntax from <a href=\"https:\/\/thehackernews.com\/2026\/11\/claude-codes-dont-ask-again-file.html\" style=\"color:#7dd3fc\" target=\"_blank\" rel=\"noopener\">The Hacker News<\/a>.<\/div><\/div><\/li>\n  <li><b>Iris Plaza (9 Nov):<\/b> a compromised external cloud service may have exposed data on 7.7 million customers; article not read in full. <a class=\"s\" href=\"https:\/\/www.securityweek.com\/iris-plaza-breach-may-have-exposed-data-of-7-7-million-customers\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek<\/a><\/li>\n  <li><b>NoName057(16) doxxing (9 Nov):<\/b> personal data of 18 European officials and journalists, including Italy&#8217;s foreign minister Antonio Tajani, published with crypto bounties; the Russian Embassy denied involvement. <a class=\"s\" href=\"https:\/\/therecord.media\/hackers-russia-italy-noname\" target=\"_blank\" rel=\"noopener\">The Record<\/a><\/li>\n  <li><b>Ukraine arrests (9 Nov):<\/b> four people held over a call-centre investment scam that took more than \u20ac4.3M from 135 German victims. <a class=\"s\" href=\"https:\/\/therecord.media\/ukraine-arrests-scam-call-centers-germany\" target=\"_blank\" rel=\"noopener\">The Record<\/a><\/li>\n  <li><b>AI and attackers (9 Nov):<\/b> an attacker used BOSSAI agents against Taipei emergency dispatch records <a class=\"s\" href=\"https:\/\/thehackernews.com\/2026\/11\/taiwan-based-hacker-used-bossai-ai.html\" target=\"_blank\" rel=\"noopener\">The Hacker News<\/a>; Google DeepMind agents lowered the cost of attacking RSA-1024 <a class=\"s\" href=\"https:\/\/www.securityweek.com\/google-deepminds-ai-agents-make-1024-bit-rsa-keys-cheaper-to-attack\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek<\/a>.<\/li>\n <\/ul>\n<\/section>\n\n<!-- ============================== SOURCES ============================== -->\n<section class=\"sheet\" id=\"sources\">\n <div class=\"runhead\"><span class=\"mast\"><span class=\"m\">MAG<\/span><span class=\"n\">212<\/span> <span class=\"y\">CYBER<\/span><\/span><span>Source register<\/span><\/div>\n <h2 class=\"sec\">Source register<\/h2>\n <p class=\"small muted\">Every source behind this issue; each title links to the source. &#8220;Opened&#8221; means our research team read it; &#8220;No&#8221; means it could not be reached and claims from it rest on the secondary sources listed. All links checked for correct form; we did not re-fetch them at publication. Editorial method: original summaries and analysis, short attributed quotes only. Corrections: write via <a href=\"https:\/\/cyber.mag212.com\">cyber.mag212.com<\/a>.<\/p>\n <div class=\"t-wrap\"><table class=\"reg\"><thead><tr><th>#<\/th><th>Publisher \/ title<\/th><th>Date<\/th><th>Type<\/th><th>Opened?<\/th><th>Site<\/th><\/tr><\/thead><tbody><tr><td>1<\/td><td><a href=\"https:\/\/raw.githubusercontent.com\/cisagov\/kev-data\/develop\/known_exploited_vulnerabilities.json\" target=\"_blank\" rel=\"noopener\">CISA KEV catalog (GitHub mirror, v2026.11.09)<\/a><\/td><td>9 Nov 2026<\/td><td>Primary (government)<\/td><td>Yes<\/td><td>raw.githubusercontent.com<\/td><\/tr><tr><td>2<\/td><td><a href=\"https:\/\/www.openssh.org\/releasenotes.html\" target=\"_blank\" rel=\"noopener\">OpenSSH release notes (10.6p2)<\/a><\/td><td>5 Nov 2026<\/td><td>Primary (vendor)<\/td><td>Yes<\/td><td>openssh.org<\/td><\/tr><tr><td>3<\/td><td><a href=\"https:\/\/alpinelinux.org\/posts\/2026-11-05-openssh-password-authentication-bypass\/\" target=\"_blank\" rel=\"noopener\">Alpine Linux: OpenSSH password authentication bypass<\/a><\/td><td>5 Nov 2026<\/td><td>Primary (vendor)<\/td><td>Yes<\/td><td>alpinelinux.org<\/td><\/tr><tr><td>4<\/td><td><a href=\"https:\/\/www.helpnetsecurity.com\/?p=390599\" target=\"_blank\" rel=\"noopener\">Help Net Security: OpenSSH sshole exploitation<\/a><\/td><td>6 Nov 2026<\/td><td>Secondary<\/td><td>Yes<\/td><td>helpnetsecurity.com<\/td><\/tr><tr><td>5<\/td><td><a href=\"https:\/\/www.securityweek.com\/hackers-exploiting-sshole-authentication-bypass-in-openssh\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek: Hackers exploiting SSHole<\/a><\/td><td>9 Nov 2026<\/td><td>Secondary<\/td><td>Listing<\/td><td>securityweek.com<\/td><\/tr><tr><td>6<\/td><td><a href=\"https:\/\/securityweek.com\/openssh-rushes-patches-for-sshole-authentication-bypass\" target=\"_blank\" rel=\"noopener\">SecurityWeek: OpenSSH rushes patches<\/a><\/td><td>Nov 2026<\/td><td>Secondary<\/td><td>No<\/td><td>securityweek.com<\/td><\/tr><tr><td>7<\/td><td><a href=\"https:\/\/thehackernews.com\/2026\/11\/hackers-exploited-openssh-sshole-flaw.html\" target=\"_blank\" rel=\"noopener\">The Hacker News: OpenSSH sshole exploited<\/a><\/td><td>Nov 2026<\/td><td>Secondary<\/td><td>No<\/td><td>thehackernews.com<\/td><\/tr><tr><td>8<\/td><td><a href=\"https:\/\/www.cisecurity.org\/advisory\/a-vulnerability-in-openssh-could-allow-for-authentication-bypass_2026-040\" target=\"_blank\" rel=\"noopener\">CIS advisory 2026-040<\/a><\/td><td>Nov 2026<\/td><td>Secondary (advisory)<\/td><td>No<\/td><td>cisecurity.org<\/td><\/tr><tr><td>9<\/td><td><a href=\"https:\/\/www.hkcert.org\/security-bulletin\/openssh-multiple-vulnerabilities_20261106\" target=\"_blank\" rel=\"noopener\">HKCERT OpenSSH bulletin<\/a><\/td><td>6 Nov 2026<\/td><td>Secondary (CERT)<\/td><td>No<\/td><td>hkcert.org<\/td><\/tr><tr><td>10<\/td><td><a href=\"https:\/\/bleepingcomputer.com\/news\/security\/sonicwall-warns-of-new-ssl-vpn-mfa-bypass-flaw-exploited-in-attacks\" target=\"_blank\" rel=\"noopener\">BleepingComputer: SonicWall SSL-VPN MFA bypass<\/a><\/td><td>6 Nov 2026<\/td><td>Secondary<\/td><td>Yes<\/td><td>bleepingcomputer.com<\/td><\/tr><tr><td>11<\/td><td><a href=\"https:\/\/www.securityweek.com\/sonicwall-patches-exploited-sonicos-bug-that-weakens-vpn-logins\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek: SonicWall patches exploited SonicOS bug<\/a><\/td><td>7 Nov 2026<\/td><td>Secondary<\/td><td>Yes<\/td><td>securityweek.com<\/td><\/tr><tr><td>12<\/td><td><a href=\"https:\/\/psirt.global.sonicwall.com\/vuln-detail\/SNWLID-2026-0014\" target=\"_blank\" rel=\"noopener\">SonicWall PSIRT SNWLID-2026-0014<\/a><\/td><td>6 Nov 2026<\/td><td>Primary (vendor)<\/td><td>No (timeout)<\/td><td>psirt.global.sonicwall.com<\/td><\/tr><tr><td>13<\/td><td><a href=\"https:\/\/www.cisa.gov\/news-events\/alerts\/2026\/11\/06\/cisa-adds-one-known-exploited-vulnerability-catalog\" target=\"_blank\" rel=\"noopener\">CISA alert: adds one KEV (SonicWall)<\/a><\/td><td>6 Nov 2026<\/td><td>Primary (government)<\/td><td>No (blocked)<\/td><td>cisa.gov<\/td><\/tr><tr><td>14<\/td><td><a href=\"https:\/\/thehackernews.com\/2026\/11\/cisa-flags-sonicwall-sonicos-mfa-bypass.html\" target=\"_blank\" rel=\"noopener\">The Hacker News: CISA flags SonicWall MFA bypass<\/a><\/td><td>9 Nov 2026<\/td><td>Secondary<\/td><td>Listing<\/td><td>thehackernews.com<\/td><\/tr><tr><td>15<\/td><td><a href=\"https:\/\/www.oflight.co.jp\/en\/columns\/vulnerability-digest-2026-11-07\" target=\"_blank\" rel=\"noopener\">Oflight vulnerability digest<\/a><\/td><td>7 Nov 2026<\/td><td>Secondary<\/td><td>Yes<\/td><td>oflight.co.jp<\/td><\/tr><tr><td>16<\/td><td><a href=\"https:\/\/www.securityweek.com\/plex2shell-exploited-against-qnap-nas-users\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek: Plex2Shell exploited against QNAP NAS users<\/a><\/td><td>9 Nov 2026<\/td><td>Secondary<\/td><td>Yes<\/td><td>securityweek.com<\/td><\/tr><tr><td>17<\/td><td><a href=\"https:\/\/www.qnap.com\/en\/security-news\/2026\/qnap-security-notice-plex-media-server-vulnerabilities-plex2shell-update-to-1-43-3-10861-or-later-immediately-no-data-loss-reported\" target=\"_blank\" rel=\"noopener\">QNAP security notice: Plex2Shell<\/a><\/td><td>Nov 2026<\/td><td>Primary (vendor)<\/td><td>Not confirmed<\/td><td>qnap.com<\/td><\/tr><tr><td>18<\/td><td><a href=\"https:\/\/www.qnap.com\/en\/how-to\/faq\/article\/plex2shell-check-and-remediation-faq-for-qnap-nas-users\" target=\"_blank\" rel=\"noopener\">QNAP FAQ: Plex2Shell check and remediation<\/a><\/td><td>Nov 2026<\/td><td>Primary (vendor)<\/td><td>Not confirmed<\/td><td>qnap.com<\/td><\/tr><tr><td>19<\/td><td><a href=\"https:\/\/securityonline.info\/freeswitch-vulnerability-cve-2026-116779-exploited\/\" target=\"_blank\" rel=\"noopener\">SecurityOnline: FreeSWITCH CVE-2026-116779 exploited<\/a><\/td><td>29 Oct 2026<\/td><td>Secondary<\/td><td>Yes<\/td><td>securityonline.info<\/td><\/tr><tr><td>20<\/td><td><a href=\"https:\/\/github.com\/signalwire\/freeswitch\/security\/advisories\/GHSA-mg63-h38w-8p9p\" target=\"_blank\" rel=\"noopener\">FreeSWITCH GHSA-mg63-h38w-8p9p<\/a><\/td><td>28 Oct 2026<\/td><td>Primary (vendor)<\/td><td>No (timeout)<\/td><td>github.com<\/td><\/tr><tr><td>21<\/td><td><a href=\"https:\/\/securityonline.info\/gpustack-authentication-bypass-cve-2026-102895-exploited\/\" target=\"_blank\" rel=\"noopener\">SecurityOnline: GPUStack CVE-2026-102895 exploited<\/a><\/td><td>5 Nov 2026, updated 10 Nov<\/td><td>Secondary<\/td><td>Yes<\/td><td>securityonline.info<\/td><\/tr><tr><td>22<\/td><td><a href=\"https:\/\/ibm.com\/support\/pages\/node\/7295921\" target=\"_blank\" rel=\"noopener\">IBM security bulletin: Aspera Faspex<\/a><\/td><td>7 Nov 2026<\/td><td>Primary (vendor)<\/td><td>Yes<\/td><td>ibm.com<\/td><\/tr><tr><td>23<\/td><td><a href=\"https:\/\/thehackernews.com\/2026\/11\/hackers-exploit-quboles-trusted-aws.html\" target=\"_blank\" rel=\"noopener\">The Hacker News: Qubole trusted AWS access abused<\/a><\/td><td>9 Nov 2026<\/td><td>Secondary<\/td><td>Yes<\/td><td>thehackernews.com<\/td><\/tr><tr><td>24<\/td><td><a href=\"https:\/\/www.wiz.io\/blog\/qubole-cross-account-access-abused-in-the-wild\" target=\"_blank\" rel=\"noopener\">Wiz: Qubole cross-account access abused in the wild<\/a><\/td><td>~9 Nov 2026<\/td><td>Primary (researcher)<\/td><td>No (timeout)<\/td><td>wiz.io<\/td><\/tr><tr><td>25<\/td><td><a href=\"https:\/\/docs.qubole.com\/en\/latest\/user-guide\/managing-accounts\/aws\/iam-roles\/create-iam-roles.html\" target=\"_blank\" rel=\"noopener\">Qubole docs: create IAM roles<\/a><\/td><td>n\/a<\/td><td>Vendor documentation<\/td><td>Cited via THN<\/td><td>docs.qubole.com<\/td><\/tr><tr><td>26<\/td><td><a href=\"https:\/\/docs.aws.amazon.com\/IAM\/latest\/UserGuide\/id_roles_common-scenarios_third-party.html\" target=\"_blank\" rel=\"noopener\">AWS: External ID for third-party access<\/a><\/td><td>n\/a<\/td><td>Vendor documentation<\/td><td>Cited via THN<\/td><td>docs.aws.amazon.com<\/td><\/tr><tr><td>27<\/td><td><a href=\"https:\/\/www.securityweek.com\/france-blames-iran-for-a-cyberattack-that-heated-supermarket-refrigerators\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek\/AP: France blames Iran for refrigerator cyberattack<\/a><\/td><td>10 Nov 2026<\/td><td>Secondary (wire)<\/td><td>Yes<\/td><td>securityweek.com<\/td><\/tr><tr><td>28<\/td><td><a href=\"https:\/\/www.securityweek.com\/us-agencies-urge-organizations-to-harden-refrigeration-controllers\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek: US agencies urge hardening of refrigeration controllers<\/a><\/td><td>6 Nov 2026<\/td><td>Secondary<\/td><td>Yes<\/td><td>securityweek.com<\/td><\/tr><tr><td>29<\/td><td><a href=\"https:\/\/www.ic3.gov\/CSA\/2026\/261105.pdf\" target=\"_blank\" rel=\"noopener\">IC3 joint advisory 261105 (PDF)<\/a><\/td><td>5 Nov 2026<\/td><td>Primary (government)<\/td><td>No (timeout)<\/td><td>ic3.gov<\/td><\/tr><tr><td>30<\/td><td><a href=\"https:\/\/censys.com\/blog\/european-refrigeration-controller-exposure-sitrep\" target=\"_blank\" rel=\"noopener\">Censys: European refrigeration controller exposure<\/a><\/td><td>Nov 2026<\/td><td>Primary (researcher)<\/td><td>Cited via SecurityWeek<\/td><td>censys.com<\/td><\/tr><tr><td>31<\/td><td><a href=\"https:\/\/www.securityweek.com\/over-100-european-stores-hit-as-supermarket-fridge-attacks-resume\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek: Over 100 European stores hit as fridge attacks resume<\/a><\/td><td>3 Nov 2026<\/td><td>Secondary<\/td><td>Yes<\/td><td>securityweek.com<\/td><\/tr><tr><td>32<\/td><td><a href=\"https:\/\/www.securityweek.com\/cyberattack-hits-french-blood-bank-site-but-no-blood-products-are-compromised\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek\/AP: French blood bank site hit<\/a><\/td><td>5 Nov 2026<\/td><td>Secondary (wire)<\/td><td>Yes<\/td><td>securityweek.com<\/td><\/tr><tr><td>33<\/td><td><a href=\"https:\/\/www.securityweek.com\/critical-node-red-flaw-exploited-in-attacks\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek: Critical Node-RED flaw exploited<\/a><\/td><td>3 Nov 2026<\/td><td>Secondary<\/td><td>Yes<\/td><td>securityweek.com<\/td><\/tr><tr><td>34<\/td><td><a href=\"https:\/\/content.govdelivery.com\/accounts\/USDHSCISA\/bulletins\/4317fd8\" target=\"_blank\" rel=\"noopener\">CISA GovDelivery: ICSA-26-307-01<\/a><\/td><td>3 Nov 2026<\/td><td>Primary (government)<\/td><td>Yes<\/td><td>content.govdelivery.com<\/td><\/tr><tr><td>35<\/td><td><a href=\"https:\/\/therecord.media\/hackers-russia-italy-noname\" target=\"_blank\" rel=\"noopener\">The Record: Pro-Russian hackers target European officials (NoName)<\/a><\/td><td>9 Nov 2026<\/td><td>Secondary<\/td><td>Yes<\/td><td>therecord.media<\/td><\/tr><tr><td>36<\/td><td><a href=\"https:\/\/www.securityweek.com\/italys-meloni-blames-pro-russian-hackers-for-leak-of-foreign-ministers-data-on-the-dark-web\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek: Italy&#x27;s Meloni blames pro-Russian hackers<\/a><\/td><td>9 Nov 2026<\/td><td>Secondary<\/td><td>Headline only<\/td><td>securityweek.com<\/td><\/tr><tr><td>37<\/td><td><a href=\"https:\/\/www.securityweek.com\/3-million-people-hit-by-frontline-education-data-breach\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek: 3 million people hit by Frontline Education breach<\/a><\/td><td>9 Nov 2026<\/td><td>Secondary<\/td><td>Yes<\/td><td>securityweek.com<\/td><\/tr><tr><td>38<\/td><td><a href=\"https:\/\/www.securityweek.com\/amplifon-americas-data-breach-impacts-1-3-million\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek: Amplifon Americas breach impacts 1.3 million<\/a><\/td><td>9 Nov 2026<\/td><td>Secondary<\/td><td>Yes<\/td><td>securityweek.com<\/td><\/tr><tr><td>39<\/td><td><a href=\"https:\/\/therecord.media\/amplifon-hearing-aid-company-data-breach\" target=\"_blank\" rel=\"noopener\">The Record: Amplifon hearing aid company data breach<\/a><\/td><td>9 Nov 2026<\/td><td>Secondary<\/td><td>Yes<\/td><td>therecord.media<\/td><\/tr><tr><td>40<\/td><td><a href=\"https:\/\/www.breachtally.com\/notice\/tx-ag\/BR-0005495\" target=\"_blank\" rel=\"noopener\">BreachTally: Texas AG record BR-0005495<\/a><\/td><td>Nov 2026<\/td><td>Tertiary aggregator<\/td><td>Cited via SecurityWeek<\/td><td>breachtally.com<\/td><\/tr><tr><td>41<\/td><td><a href=\"https:\/\/www.amplifonusa.com\/legal-and-privacy\/amplifon-americas-security-incident\" target=\"_blank\" rel=\"noopener\">Amplifon Americas security incident notice<\/a><\/td><td>2026<\/td><td>Primary (company)<\/td><td>No (blocked)<\/td><td>amplifonusa.com<\/td><\/tr><tr><td>42<\/td><td><a href=\"https:\/\/www.securityweek.com\/revolve-puts-data-breach-victim-count-at-1-5-million\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek: Revolve puts breach victim count at 1.5 million<\/a><\/td><td>9 Nov 2026<\/td><td>Secondary<\/td><td>Yes<\/td><td>securityweek.com<\/td><\/tr><tr><td>43<\/td><td><a href=\"https:\/\/socket.dev\/blog\/bee-js-compromise\" target=\"_blank\" rel=\"noopener\">Socket: bee-js compromise<\/a><\/td><td>9 Nov 2026<\/td><td>Primary (researcher)<\/td><td>Yes<\/td><td>socket.dev<\/td><\/tr><tr><td>44<\/td><td><a href=\"https:\/\/thehackernews.com\/2026\/11\/hackers-compromise-etherspheres-bee-js.html\" target=\"_blank\" rel=\"noopener\">The Hacker News: Ethersphere bee-js and Swarm Desktop compromised<\/a><\/td><td>9 Nov 2026<\/td><td>Secondary<\/td><td>Listing<\/td><td>thehackernews.com<\/td><\/tr><tr><td>45<\/td><td><a href=\"https:\/\/socket.dev\/blog\/github-to-block-pull-request-target\" target=\"_blank\" rel=\"noopener\">Socket: GitHub to block pull_request_target<\/a><\/td><td>5 Nov 2026<\/td><td>Secondary<\/td><td>Listing<\/td><td>socket.dev<\/td><\/tr><tr><td>46<\/td><td><a href=\"https:\/\/cybernews.com\/security\/fortinet-critical-flaws-patches-november-disclosure\/\" target=\"_blank\" rel=\"noopener\">Cybernews: Fortinet critical flaws, November disclosure<\/a><\/td><td>Oct\u2013Nov 2026<\/td><td>Secondary<\/td><td>Yes<\/td><td>cybernews.com<\/td><\/tr><tr><td>47<\/td><td><a href=\"https:\/\/www.csa.gov.sg\/alerts-and-advisories\/alerts\/al-2026-159\/\" target=\"_blank\" rel=\"noopener\">CSA Singapore AL-2026-159 (Cisco ASA\/FTD)<\/a><\/td><td>Updated 10 Nov 2026<\/td><td>Government (CERT)<\/td><td>Yes<\/td><td>csa.gov.sg<\/td><\/tr><tr><td>48<\/td><td><a href=\"https:\/\/msrc.microsoft.com\/update-guide\" target=\"_blank\" rel=\"noopener\">Microsoft MSRC Update Guide<\/a><\/td><td>Pending<\/td><td>Primary (vendor)<\/td><td>Not yet published<\/td><td>msrc.microsoft.com<\/td><\/tr><tr><td>49<\/td><td><a href=\"https:\/\/www.helpnetsecurity.com\/2026\/10\/14\/microsoft-patch-tuesday-cve-2026-96951-motw-bypass\/\" target=\"_blank\" rel=\"noopener\">Help Net Security: October 2026 Patch Tuesday (CVE-2026-96951)<\/a><\/td><td>14 Oct 2026<\/td><td>Secondary<\/td><td>Search result<\/td><td>helpnetsecurity.com<\/td><\/tr><tr><td>50<\/td><td><a href=\"https:\/\/www.securityweek.com\/chrome-update-patches-exploited-xml-zero-day-eighth-this-year\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek: Chrome update patches exploited XML zero-day<\/a><\/td><td>10 Nov 2026<\/td><td>Secondary<\/td><td>Headline only<\/td><td>securityweek.com<\/td><\/tr><tr><td>51<\/td><td><a href=\"https:\/\/thehackernews.com\/2026\/11\/claude-codes-dont-ask-again-file.html\" target=\"_blank\" rel=\"noopener\">The Hacker News: Claude Code &quot;don&#x27;t ask again&quot; file leaks secrets<\/a><\/td><td>7 Nov 2026<\/td><td>Secondary<\/td><td>Yes<\/td><td>thehackernews.com<\/td><\/tr><tr><td>52<\/td><td><a href=\"https:\/\/apiiro.com\/blog\/coding-agents-leaking-secrets-github-dont-ask-again\" target=\"_blank\" rel=\"noopener\">Apiiro: coding agents leaking secrets<\/a><\/td><td>~7 Nov 2026<\/td><td>Primary (researcher)<\/td><td>No<\/td><td>apiiro.com<\/td><\/tr><tr><td>53<\/td><td><a href=\"https:\/\/github.com\/anthropics\/claude-code\/issues\/5544\" target=\"_blank\" rel=\"noopener\">GitHub issue anthropics\/claude-code #5544<\/a><\/td><td>11 Aug 2025<\/td><td>Primary (issue tracker)<\/td><td>Cited via THN<\/td><td>github.com<\/td><\/tr><tr><td>54<\/td><td><a href=\"https:\/\/www.securityweek.com\/iris-plaza-breach-may-have-exposed-data-of-7-7-million-customers\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek: Iris Plaza breach may have exposed 7.7M<\/a><\/td><td>9 Nov 2026<\/td><td>Secondary<\/td><td>Headline only<\/td><td>securityweek.com<\/td><\/tr><tr><td>55<\/td><td><a href=\"https:\/\/therecord.media\/ukraine-arrests-scam-call-centers-germany\" target=\"_blank\" rel=\"noopener\">The Record: Ukraine arrests scam call-centre operators<\/a><\/td><td>9 Nov 2026<\/td><td>Secondary<\/td><td>Yes<\/td><td>therecord.media<\/td><\/tr><tr><td>56<\/td><td><a href=\"https:\/\/thehackernews.com\/2026\/11\/taiwan-based-hacker-used-bossai-ai.html\" target=\"_blank\" rel=\"noopener\">The Hacker News: Taiwan-based hacker used BOSSAI agents<\/a><\/td><td>9 Nov 2026<\/td><td>Secondary<\/td><td>Listing<\/td><td>thehackernews.com<\/td><\/tr><tr><td>57<\/td><td><a href=\"https:\/\/www.securityweek.com\/google-deepminds-ai-agents-make-1024-bit-rsa-keys-cheaper-to-attack\/\" target=\"_blank\" rel=\"noopener\">SecurityWeek: DeepMind AI agents and RSA-1024<\/a><\/td><td>9 Nov 2026<\/td><td>Secondary<\/td><td>Listing<\/td><td>securityweek.com<\/td><\/tr><\/tbody><\/table><\/div>\n<\/section>\n\n<!-- ============================== SUBSCRIBE ============================== -->\n<section class=\"sheet subscribe\" id=\"subscribe\">\n <div class=\"mast\"><span class=\"m\">MAG<\/span><span class=\"n\">212<\/span> <span class=\"y\">CYBER<\/span><\/div>\n <div class=\"edition\" style=\"margin-top:10px\">DAILY CYBER INTELLIGENCE<\/div>\n <h2 style=\"color:#fff;font-size:32px;margin:26px 0 8px\">Get tomorrow&#8217;s briefing before your first coffee<\/h2>\n <p style=\"font-size:17px;color:#c8d4e6;max-width:52ch;margin:0 auto\">Verified stories, the three actions that matter, and clear labels for what&#8217;s confirmed, reported and still unknown. Free.<\/p>\n <a class=\"btn\" href=\"https:\/\/cyber.mag212.com\/subscribe-free\/\">Subscribe free \u2192<\/a>\n <div style=\"color:#9fb3cf;font-size:14px\">cyber.mag212.com\/subscribe-free<\/div>\n <div class=\"why\">\n  <div><b>Verified, not viral<\/b>Primary sources first, conflicts flagged, nothing invented.<\/div>\n  <div><b>Built for defenders<\/b>Versions, fixes, log locations and ordered remediation steps.<\/div>\n  <div><b>For every team<\/b>Network engineers, MSPs, school IT, IT managers and owners.<\/div>\n <\/div>\n <p style=\"margin-top:28px;font-size:14px;color:#9fb3cf\">Editor: <b style=\"color:#fff\">El Mostafa Ouchen<\/b> \u00b7 <a href=\"https:\/\/cyber.mag212.com\" style=\"color:var(--cyan)\">cyber.mag212.com<\/a> \u00b7 Issue MAG212_CYBER_Daily_2026-11-10<\/p>\n<\/section>\n<\/div>\n\n\n\n\n<h2 class=\"wp-block-heading\">Flip through the edition<\/h2>\n\n\n<div class=\"_df_book df-lite\" id=\"0\"  data-title=\"\" wpoptions=\"true\" thumbtype=\"\" source=\"https:\/\/cyber.mag212.com\/wp-content\/uploads\/2026\/11\/MAG212_CYBER_Daily_2026-11-10.pdf\" height=\"auto\" webgl=\"true\" ><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Get MAG212 CYBER in your inbox every day. <a href=\"https:\/\/cyber.mag212.com\/subscribe-free\/\">Subscribe free<\/a>. By El Mostafa Ouchen.<\/p>\n\n\n","protected":false},"excerpt":{"rendered":"<p>Exploited OpenSSH sshole on Alpine\/musl (KEV due Nov 12), a SonicWall SSL-VPN flaw that skips SAML MFA, Plex2Shell on QNAP NAS, Qubole&#8217;s own AWS account used on customer roles, signed bee-js malware and France&#8217;s IRGC attribution for the fridge sabotage. Plus the three actions to take today.<\/p>","protected":false},"author":1,"featured_media":4111,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19,13,21,15,14],"tags":[211,193,62,123,286,105,285,210,166,284,283,233,149,56],"class_list":["post-4113","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-critical-cves","category-cyber-incidents","category-digital-magazine","category-threat-intelligence","category-vulnerabilities","tag-alpine-linux","tag-aws","tag-cisa-kev","tag-data-breach","tag-iran","tag-mfa-bypass","tag-npm","tag-openssh","tag-ot-security","tag-plex","tag-qnap","tag-sonicwall","tag-supply-chain","tag-supply-chain-attack"],"_links":{"self":[{"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/posts\/4113","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/comments?post=4113"}],"version-history":[{"count":4,"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/posts\/4113\/revisions"}],"predecessor-version":[{"id":4149,"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/posts\/4113\/revisions\/4149"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/media\/4111"}],"wp:attachment":[{"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/media?parent=4113"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/categories?post=4113"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/tags?post=4113"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}