エグゼクティブサマリ
Unit 42 は、PHP における 2 つの重大な脆弱性、CVE-2026-109618 および CVE-2026-109619 (PHP2Shell と呼称) を認識しています。両者ともに、CVSS 4.0 で 9.2 と評価されているリモートコード実行 (RCE) の脆弱性です。PHP Group のセキュリティアドバイザリおよびパッチ適用ガイダンスを確認することを推奨します。 PHP は、世界中の Web サーバーやコンテンツ管理システム (CMS) で広く使用されています。これらの脆弱性に対するエクスポージャー (露出) を評価し、直ちにパッチを適用することを推奨します。 パロアルトネットワークスは、この問題に関して自社の製品ポートフォリオを評価しました。最新の詳細については、弊社のセキュリティアドバイザリを参照してください。
- CVE-2026-109618 は、不適切な制御フロー管理により、longjmp() を介したメモリ不足 (out-of-memory) エラーの処理時にリクエストメモリが初期化されないままになるというリモートコード実行の脆弱性であり、攻撃者は OOM (メモリ不足) トリガーを使用して確実に RCE を実行できるようになります。
- CVE-2026-109619 は、longjmp() の致命的なエラー (fatal error) 処理により、グローバルメモリが解放済みのメモリ領域を指したままになるというリモートコード実行の脆弱性です。これらの領域は、後続のリクエスト中に読み取られたり分岐されたりする可能性があり、攻撃者による任意のコード実行を可能にします。
最初の公開時点で、パロアルトネットワークスの Cortex Xpanse は、当社のテレメトリに基づき、CVE-2026-109618 および CVE-2026-109619 に対して潜在的に脆弱な 2,200 万を超える公開インスタンスの存在を特定しています。
2026年10月29日
弊社のセキュリティアドバイザリで開示されているように、PHP2Shell の脆弱性は、インターネットに公開されている PAN-OS 管理インターフェースに対して積極的に悪用されています。Dream Research は、攻撃者が PHP2Shell と Linux カーネルの特権昇格の脆弱性を連鎖 (チェーン) させて root アクセスを取得するキャンペーンを報告しました。Unit 42 は、同一の攻撃者のツールを独自に検証し、報告された結果を確認しました。
セキュリティのベストプラクティスに従い、デフォルトでは管理インターフェースはインターネットに公開されていません。パブリックインターネットから管理インターフェースへのアクセスが有効になっている場合、お客様は直ちにこれを削除する必要があります。また、お客様は信頼できる内部 IP アドレスへのアクセスを制限し、PHP2Shell に対処する利用可能な PAN-OS の修正プログラムを適用する必要があります。利用可能なパッチを適用したお客様は影響を受けません。これらの修正により、観測されたエクスプロイトチェーンは遮断されます。弊社のセキュリティアドバイザリでは、影響を受けるバージョン、パッチの提供状況、および緩和策の要件を提供しています。弊社のセキュリティアドバイザリの「回避策と緩和策 (Workarounds and Mitigations)」セクションでは、Advanced Threat Prevention のシグネチャがこの脆弱性に対してどのようにカバレッジを提供するかについての詳細も記載されています。
当社の全世界のインストールベースのうち、インターネットに面した管理インターフェースを設定しており、高い露出リスクにさらされていたのはごく一部 (約 0.02%) に過ぎません。これらの各お客様には、当社のチームが個別に連絡を取っています。我々は引き続き調査を行い、必要に応じてアップデートが利用可能になり次第提供します。
パロアルトネットワークスのお客様は、以下の方法で CVE-2026-109618 および CVE-2026-109619 に対する保護と緩和策を受けることができます:
- Advanced WildFire
- Cortex XDR および XSIAM
- Cortex Cloud および Prisma Cloud
- Cortex Xpanse
- Advanced Threat Prevention Plus with Frontier Virtual Patching
- Advanced Threat Prevention セキュリティサブスクリプションを搭載した Next-Generation Firewall
- Device Security
- Unit 42 Continuous Frontier AI Defense
また、パロアルトネットワークスは、これらの脆弱性に対するエクスポージャーを評価し、直ちにパッチを適用することを推奨します。
組織は、Unit 42 Threat Intel Services およびその Deep and Dark Web Service を通じて、カスタマイズされた攻撃者インテリジェンス、アナリストへの直接相談、および専門的なエクスポージャー追跡にアクセスできます。
侵害への対応や、リスク低減のためのプロアクティブな評価については、Unit 42 インシデントレスポンスチームにご相談いただくことも可能です。
| 解説する脆弱性 | CVE-2026-109618, CVE-2026-109619, PHP2Shell |
Unit 42 マネージドスレットハンティングクエリ
Unit 42 マネージドスレットハンティングチームは、Cortex XDR および以下の XQL クエリを使用して、お客様環境全体でこれらの CVE を悪用しようとする試みを追跡し続けています。Cortex XDR のお客様は、これらの XQL クエリを使用して悪用の兆候を検索することもできます。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
// Description: This query attempts to identify post-exploitation command execution within the context of a PHP web server or worker process. // Notes: This hunting query is not specific to CVE-2026-109618 and CVE-2026-109619. It is capable of identifying exploitation of various web application vulnerabilities. This query may also produce false positive findings depending on the specific web applications running. We recommend validating if any identified activity is expected for the web applications running on systems. config case_sensitive = false | dataset = xdr_data | filter event_type = ENUM.PROCESS and event_sub_type = ENUM.PROCESS_START and action_process_image_name != null | fields _time, agent_hostname, agent_id, event_id, actor_effective_username, actor_process_image_name, actor_process_command_line, action_process_image_name, action_process_image_path, action_process_image_command_line, causality_actor_process_image_name, causality_actor_process_command_line // Lowercase fields once | alter actor_effective_username = lowercase(actor_effective_username), actor_process_image_name = lowercase(actor_process_image_name), actor_process_command_line = lowercase(actor_process_command_line), action_process_image_name = lowercase(action_process_image_name), action_process_image_path = lowercase(action_process_image_path), action_process_image_command_line = lowercase(action_process_image_command_line), causality_actor_process_image_name = lowercase(causality_actor_process_image_name) // Anchor: PHP web worker (or the launcher that started it) as causality, PHP worker as direct parent, // a shell directly under an IIS worker, or the web service account outside an interactive login session | filter causality_actor_process_image_name ~= "^(?:apache2|httpd|apachectl|php-fpm[0-9.]*|php-cgi[0-9.]*(?:\.cagefs)?|php-fcgi|sw-engine(?:-fpm)?|frankenphp|lsphp[0-9]*|lshttpd|litespeed|xampp-control|wampmanager|laragon|de\.appsolute\.mampprohelper)(?:\.exe)?$" or actor_process_image_name ~= "^(?:apache2|httpd|php-fpm[0-9.]*|php-cgi[0-9.]*(?:\.cagefs)?|php-fcgi|sw-engine(?:-fpm)?|frankenphp|lsphp[0-9]*|lshttpd|litespeed)(?:\.exe)?$" or (causality_actor_process_image_name = "w3wp.exe" and actor_process_image_name in ("cmd.exe", "powershell.exe", "pwsh.exe")) or (actor_effective_username ~= "(?:^|[^a-z0-9_-])(?:www-data|apache|nginx|wwwrun|iusr)$" and coalesce(causality_actor_process_image_name, "") !~= "^(?:sshd(?:-session)?|screen|tmux|login|mosh-server|dropbear)$") or actor_effective_username contains "iis apppool" // Known-benign workloads (monitoring plugins, hosting control panels) and commands launched directly by CDK Drive DMS scripts | filter action_process_image_command_line !~= "(?:\/usr\/lib(?:64)?\/nagios\/plugins\/|\/usr\/local\/cpanel\/|\/usr\/local\/psa\/|\/opt\/psa\/|\/usr\/local\/directadmin\/|\/usr\/local\/ispconfig\/|\/usr\/local\/virtualizor\/|richdocumentscode|phpsysinfo|librenms|zabbix)" and coalesce(actor_process_command_line, "") !~= "^(?:\S+\s+)?(?:\/adp\/(?:bin|3party|etc)\/|\/local\/bin\/uminfo)" // Phusion Passenger app spawns run id/uname/env from their spawn helpers | filter coalesce(action_process_image_command_line, "") !~= "^(?:\/usr\/bin\/)?(?:id(?:\s+-[a-z]+)?|uname(?:\s+-[a-z]+)?|hostname|env)$|passenger-config\s+system-metrics" or lowercase(coalesce(actor_process_command_line, "")) !~= "passengeragent\s+spawn-|spawn(?:preparer|envsetupper)shell|\/helper-scripts\/rack-preloader\.rb|passenger_ruby_wrapper|phusion_passenger" // RHEL-family /etc/profile runs these in every bash login shell | filter coalesce(action_process_image_command_line, "") !~= "^\/usr\/bin\/(?:id\s+-[ug]n|hostname)$" or lowercase(coalesce(actor_process_command_line, "")) !~= "^(?:\S*\/)?bash\s+-[a-z]*l|^-bash$" // parsed_lookup: the tool is the first command of its parent "sh -c" and its output is piped into a text filter (scripted lookup) | alter tool = replace(action_process_image_name, ".exe", ""), shell_first_cmd = arrayindex(regextract(coalesce(actor_process_command_line, ""), "^-?(?:\S*\/)?(?:ba|da|k)?sh\s+-c\s+(\S+)"), 0) | alter parsed_lookup = if(arrayindex(regextract(coalesce(shell_first_cmd, ""), "([^\/]+)$"), 0) = tool and actor_process_command_line ~= "^-?(?:\S*\/)?(?:ba|da|k)?sh\s+-c\s+[^;&|]+\|\s*(?:e?grep|awk|cut|sed|wc|head|tail|sort|tr)\b", 1, 0) // Signals - one event can carry several | alter signals = concat( // SCORED - host/user/network/container recon, excluding scripted lookups (distinct tools are counted later) if(parsed_lookup = 0 and (tool in ("whoami", "hostname", "hostnamectl", "ifconfig", "netstat", "ss", "arp", "route", "w", "who", "last", "lastlog", "getent", "lsb_release", "lscpu", "printenv", "env", "getcap", "capsh", "systeminfo", "ipconfig", "nltest", "tasklist", "quser", "qwinsta") or (tool = "uname" and action_process_image_command_line ~= "\buname\s+(?:-[a-z]*[arv]|--all|--kernel-)") or (tool = "id" and action_process_image_command_line !~= "\bid\s+-[ugnrz]+\b") or (tool = "ip" and action_process_image_command_line ~= "\bip\s+(?:-[a-z0-9]+\s+)*(?:a|addr|address|r|route|n|neigh|link)\b") or (tool = "ps" and action_process_image_command_line ~= "\bps\s+(?:-?aux|-ef|-e\b|axjf|-auxf)") or (tool in ("net", "net1") and action_process_image_command_line ~= "\bnet1?(?:\.exe)?\s+(?:user|group|localgroup|accounts|view|share)\b") or (tool = "cat" and action_process_image_command_line ~= "\/etc\/(?:passwd|shadow|group|issue|os-release|hosts|hostname|resolv\.conf|crontab|sudoers)|\/proc\/(?:version|net\/|(?:self|[0-9]+)\/(?:cgroup|mountinfo))|\/\.dockerenv") or (tool = "find" and action_process_image_command_line ~= "-perm\s+(?:-4000|-u=s|\/4000|-2000)") or (tool = "sudo" and action_process_image_command_line ~= "\bsudo\s+-l\b")), "recon,", ""), // SCORED - payload transfer to a file (curl with an output file, wget not to stdout), excluding /dev/null and localhost if(((tool = "curl" and action_process_image_command_line ~= "\s(?:-[a-z]*o\b|--output\b|--remote-name)|>\s*\S") or (tool = "wget" and action_process_image_command_line !~= "\s-[a-z]*o\s*-(?:\s|$)|--output-document=-|--spider") or (tool in ("tftp", "fetch") and action_process_image_command_line ~= "(?:https?|ftp|tftp):\/\/|\s-[a-z]*o(?:\s|-|$)") or (tool = "certutil" and action_process_image_command_line ~= "urlcache|verifyctl") or (tool = "bitsadmin" and action_process_image_command_line contains "/transfer") or (tool in ("powershell", "pwsh") and action_process_image_command_line ~= "downloadstring|downloadfile|invoke-webrequest|\biwr\b|net\.webclient|start-bitstransfer")) and action_process_image_command_line !~= "-o\s*\/dev\/null|--output-document=\/dev\/null|:\/\/(?:localhost|127\.0\.0\.1|\[::1\])?[:\/]", "download,", ""), // SCORED - chmod making a file in a tmp-class directory executable if(tool = "chmod" and action_process_image_command_line ~= "\bchmod\s+(?:-[a-z]+\s+)*(?:[0-7]?(?:[1357][0-7]{2}|[0-7][1357][0-7]|[0-7]{2}[1357])|[ugoa,+=rwst-]*[+=][rwst]*x[ugoa,+=rwxst-]*)\s" and action_process_image_command_line ~= "\s\/(?:tmp|var\/tmp|dev\/shm|run\/shm)\/", "staging,", ""), // STANDALONE - binary executed from a writable/memory-backed dir, or from a deleted/memfd image if(action_process_image_path ~= "^\/(?:tmp|var\/tmp|dev\/shm|run\/shm|run\/user)\/|^\/proc\/(?:self|[0-9]+)\/fd\/|^\/memfd:|\(deleted\)\s*$", "writable_exec,", ""), // STANDALONE - reverse/bind shell constructs if(action_process_image_command_line ~= "\/dev\/(?:tcp|udp)\/|(?:^|[\s;&|(\/])(?:nc|ncat|netcat)(?:\.[a-z]+)?\s+(?:\S+\s+){0,6}?(?:-[a-z]{0,3}[ec]|--exec|--sh-exec)\s+\S*(?:sh|bash|cmd|python[0-9.]*|perl)\b|\bsocat\b[^;&|]{0,80}exec:|\bmkfifo\b|\b(?:ba|da|z|a)?sh\s+-i\b|socket\.socket\(|fsockopen\(|\bpty\.spawn\(", "revshell,", ""), // STANDALONE - remote content piped straight into an interpreter if(action_process_image_command_line ~= "(?:curl|wget|fetch)\b[^|]*\|\s*(?:\/\S*\/)?(?:(?:ba|da|z|a)?sh|python[23]?|perl|php)\b", "pipe_to_shell,", ""), // SCORED - encoded/obfuscated execution if(action_process_image_command_line ~= "base64\s+(?:-d|--decode)|frombase64string|-e(?:nc|ncodedcommand)?\s+[a-z0-9+\/]{40,}|echo\s+[a-z0-9+\/]{40,}|\bopenssl\s+(?:enc\b[^|;]*\s-d\b|base64\s+-d\b)|\bxxd\s+(?:-[a-z]+\s+)*-[a-z]*r", "encoded,", ""), // SCORED - persistence / backgrounding (crontab edits, authorized_keys writes, new users, nohup/setsid of tmp-class binaries or shells, // scheduled tasks, Run keys, systemd units, chattr +i) if((tool = "crontab" and action_process_image_command_line !~= "\bcrontab\s+-l\s*$") or (action_process_image_command_line ~= "(?:>>?\s*|\btee\s+(?:-a\s+)?|\b(?:cp|mv|install|ln)\s+(?:-\S+\s+)*\S+\s+)\S*authorized_keys" and action_process_image_command_line !~= "\bcp\s+\S*\/\.ssh\/id_[a-z0-9]+\.pub\s+\S*\/\.ssh\/authorized_keys") or action_process_image_command_line ~= "\b(?:useradd|adduser)\b|\b(?:nohup|setsid)\s+(?:-\S+\s+)*(?:\.\/|\/(?:tmp|var\/tmp|dev\/shm|run\/shm)\/|(?:ba|da|z)?sh\s+-[ci]\b)|schtasks\s+\/create|currentversion.run\b|\bsystemctl\s+(?:--user\s+)?enable\b|\.config\/systemd\/user\/|\/etc\/systemd\/system\/|\bchattr\s+\+[a-z]*i", "persistence,", ""), // SCORED - inline interpreter one-liners, excluding PHP version/feature probes and Ruby gem-path probes if(action_process_image_command_line ~= "(?:^|[^a-z0-9._-])(?:python[23]?(?:\.[0-9]+)?\s+-c|perl\s+-e|ruby\s+-e|node(?:js)?\s+-e|lua\s+-e|php[0-9.]*\s+-r)\b" and action_process_image_command_line !~= "phpversion\(|php_version|date\('t'\)|function_exists\(|extension_loaded\(|gem\.path", "interpreter,", ""), // SCORED - cloud/container credential and secret access (credential files, env-var names, instance metadata service, .env reads) if(action_process_image_command_line ~= "\.aws\/(?:credentials|config)|aws_secret_access_key|aws_session_token|\/\.azure\/|azure_client_secret|identity_endpoint|\/\.config\/gcloud\/|application_default_credentials\.json|\/secrets\/kubernetes\.io\/serviceaccount|\/run\/secrets\/|\/\.docker\/config\.json|169\.254\.169\.254|metadata\.google\.internal|\/proc\/(?:self|[0-9]+)\/environ|\b(?:cat|head|tail|less|more|strings|grep)\b[^|;]*\.env\b", "cred_access,", "") ) | filter signals != "" | alter recon_tool = if(signals contains "recon", tool, null) // Group per host, PHP worker and account in 1-hour buckets | bin _time span = 1h | comp count() as events, count_distinct(recon_tool) as recon_tool_count, values(recon_tool) as recon_tools, values(signals) as signals, values(action_process_image_command_line) as action_process_image_command_line, values(actor_process_command_line) as actor_process_command_line, values(causality_actor_process_command_line) as causality_actor_process_command_line, first(event_id) as event_id by _time, agent_id, agent_hostname, causality_actor_process_image_name, actor_effective_username | alter all_signals = arraystring(signals, ",") // Threshold: any standalone signal, OR 3+ distinct recon tools, OR recon plus a follow-on scored signal | filter all_signals ~= "revshell|pipe_to_shell|writable_exec" or recon_tool_count >= 3 or (recon_tool_count >= 1 and all_signals ~= "download|staging|encoded|persistence|interpreter|cred_access") |
|
1 2 3 4 5 6 7 8 9 10 11 12 |
// Description: This query identifies potential inbound exploitation attempts from publicly routed IP addresses using Palo Alto Networks NGFW Threat Logs. config case_sensitive = false | dataset = panw_ngfw_threat_raw | filter sub_type = "vulnerability" | filter to_zone !~= "internet|untrust|outside|external|wan" | filter not (incidr(source_ip, "10.0.0.0/8") or incidr(source_ip, "172.16.0.0/12") or incidr(source_ip, "192.168.0.0/16")) | filter to_string(threat_id) contains "543004" or threat_name ~= "php|multipart|upload.progress|longjmp|CVE-2026-10961[89]" | comp count() as hits, count_distinct(source_ip) as sources, values(source_ip) as source_ips, values(action) as actions, values(severity) as severities, min(_time) as first_seen, max(_time) as last_seen by threat_name, threat_id, dest_ip, nat_dest, dest_port, to_zone | sort desc hits |
CVE-2026-109618 および CVE-2026-109619 に対するパロアルトネットワークス製品の保護
パロアルトネットワークスのお客様は、いくつかの製品の保護とアップデートを活用して、これらの脆弱性を特定し防御することができます。
Unit 42 Continuous Frontier AI Defense は、組織が動的な環境における隠れた未知のエクスポージャーを継続的に発見し、エージェンティックなテストと専門家の分析を通じて攻撃経路全体での現実世界での悪用可能性を検証し、リスク緩和を加速するための優先順位付けされた修復および仮想パッチ適用のガイダンスを提供できるように設計されたオフェンシブセキュリティサービスです。
組織は、Unit 42 Threat Intel Services および当社の Deep and Dark Web Service を通じて、カスタマイズされた攻撃者インテリジェンス、アナリストへの直接相談、および専門的なエクスポージャー追跡にアクセスできます。
侵害された可能性がある場合、または緊急の事態が発生した場合は、Unit 42 インシデントレスポンスチームにご連絡いただくか、以下にお電話ください:
- 北米 (フリーダイヤル): +1 (866) 486-4842 (866.4.UNIT42)
- 英国: +44.20.3743.3660
- 欧州および中東: +31.20.299.3130
- アジア: +65.6983.8730
- 日本: +81.50.1790.0200
- オーストラリア: +61.2.4062.7950
- インド: 000 800 050 45107
- 韓国: +82.080.467.8774
Advanced WildFire
Advanced WildFire の機械学習モデルおよび解析手法は、PHP とカーネルの連鎖した脆弱性に関連するインジケーター (IoC) に基づき、精査および更新されました。
Cortex XDR および XSIAM
Cortex XDR および XSIAM は、悪用後の活動に対して多層的な保護を提供するように設計されています。また、Cortex XDR は、オンプレミス環境やレガシー環境を含むエンドポイントおよびサーバー全体にインストールされているソフトウェアの可視性を提供し、セキュリティチームが脆弱な PHP バージョンを実行しているシステムを特定して修復の優先順位を付けるのを支援します。
Cortex Cloud および Prisma Cloud
Cortex Cloud および Prisma Cloud は、コード、レジストリイメージ、およびランタイムインスタンス全体で脆弱な PHP バージョンを特定するのに役立ちます。Cortex Cloud の Supply Chain Attacks Portal は、チームが影響を受ける資産を特定し、脆弱なコンポーネントが再び導入されるのを防ぐための対策を講じるのを支援します。さらに、Cortex CLI は CI/CD パイプラインに統合され、イメージをスキャンして、レジストリやランタイム環境に到達する前に脆弱なイメージをブロックするポリシーを適用します。
Cortex Xpanse
Cortex Xpanse は、パブリックインターネット上で公開されているデバイスを特定し、防御者にその結果をエスカレーションすることができます。お客様は、PHP Attack Surface Rule が有効になっていることを確認することで、このリスクに対するアラートを有効にできます。特定された結果は、Threat Response Center または Expander のインシデントビューで表示できます。これらの結果は、ASM モジュールを購入した Cortex XSIAM のお客様も利用可能です。
Next-Generation Firewall
以下のセキュリティサブスクリプションを搭載した Next-Generation Firewall は、攻撃のブロックに役立ちます:
- Advanced Threat Prevention Plus with Frontier Virtual Patching: 2026年10月20日午後10時21分 (太平洋標準時) 以降、脅威 ID 543004 を介して。
- Advanced Threat Prevention: 2026年10月21日以降、弊社のセキュリティアドバイザリに完全にリストされている Threat Prevention シグネチャとベストプラクティスを介して。
Device Security
Device Security は、運用環境における特殊なデバイスのアタックサーフェス (攻撃対象領域) をプロアクティブに保護するように設計されており、産業用プロトコルへの深い可視性、実用的なリスクの洞察、およびすべての OT および IoT 資産に対する適応型のセキュリティ適用を提供します。
追加リソース
- Impact of Critical Vulnerabilities in PHP on Palo Alto Networks Products – アドバイザリ, パロアルトネットワークス
- Millions of PHP Instances Exposed: What Organizations Need To Do Right Now – Lee Klarich, パロアルトネットワークス
- Security advisory: Critical remote code execution vulnerabilities, update now – PHP
- Chained PHP2Shell Exploit Roots 25 Servers, including US Government Servers — Dream Research
2026年10月21日 午前9時30分 (太平洋標準時) 更新: パロアルトネットワークスのセキュリティアドバイザリを追加し、追加リソースのリンクを更新、製品保護のセクションを更新しました。
2026年10月21日 午後1時 (太平洋標準時) 更新: 製品保護のセクションを更新しました。
2026年10月22日 午後4時45分 (太平洋標準時) 更新: Advanced Threat Prevention、Cortex Cloud、および Prisma Cloud の追加の製品保護情報を追加し、軽微なコピーエディットを行いました。
2026年10月23日 午後12時30分 (太平洋標準時) 更新: エージェンティック AI による悪用後の活動の詳細と、マネージドスレットハンティングクエリを追加しました。
2026年10月25日 午後2時45分 (太平洋標準時) 更新: 10月23日の更新を撤回しました。
2026年10月29日 午前11時 (太平洋標準時) 更新: 攻撃者が PHP2Shell と Linux カーネルの特権昇格の脆弱性を連鎖させ、インターネットに公開されている PAN-OS 管理インターフェースに対して root アクセスを取得するキャンペーンの詳細を追加しました。
10月25日 更新
Unit 42 は以前、当初 PHP2Shell の脆弱性に関連していると考えられていた侵害後の活動を観測したと報告しました。研究者らが確認したのは、脆弱な PHP アプリケーションのコンテキストで実行された欧州の政府機関に対する攻撃でした。これにより、我々はそれがこれらの脆弱性の悪用であると考えました。初期アクセスが特定の PHP2Shell CVE に関連していることは確認できていません。我々は 10月23日の以前の更新を撤回しました。