2026 幎 10 æ 21 æ¥ 21 æ 55 åãé«åžç·çã X ã«ããæçš¿ããŸããã
ä¿®æ£ããããéããã«é©çšããããšãå°é£ãªå Žåã¯ãäŸãã°ãŠã§ããµã€ãçãäžæçã«åæ¢ãããããšãããªã¹ã¯ãäœæžãããããã®æå¹çã®äžã€ãšèããããŸãã
(é«åžæ©è on X)
PHP ã®ä»»æã³ãŒãå®è¡ã®èåŒ±æ§ 2 ä»¶ãéç§° php2shellïŒCVE-2026-109618 / CVE-2026-109619ãCVSS v4.0 9.2ïŒã®å€ã§ãã
ãã®å€ãç§ãä¿å®ãæ åœããŠãããªã³ã©ã€ã³ãµãŒãã¹äºæ¥è A 瀟ã®è€æ°ã®ãµã€ãã¯ãPHP 7.4 ã§åããŠããŸãããå ¬åŒã®ä¿®æ£çãåºãªãçã§ããä¿®æ£ãããããéããã«é©çšããããšãå°é£ããªåŽã§ããã
ããã§ããµã€ãã¯æ¢ãããWAF ãš PHP ã®èšå®ã§ç©ŽããµãããŸããããšæžããšæ Œå¥œããã®ã§ããããã£ãããšã¯ãå ¥å£ã§ multipart ãæãããšãini ã« 1 è¡è¶³ããã® 2 ã€ã ãã§ãããµããã çŽåŸã«ã¯ãå®éã®æ»æããã°ã«æ¥ãŠããŸãããã®èšäºã¯ããã®å€ã®å€æãšæé ãéäžã§èžãã çœ ãæç³»åã§æžãããã®ã§ãã
ãã®èšäºãæžããã®ã¯ããã®å€ãã¡ãã£ãšæ¥œããã£ãããã§ããäžè¬¹æ ã«èããããããããŸããããX ããã£ããã«ã¯ãã©ããŸã§åãã£ãããã©ãã§æ¢ããããã©ã®æ«å®çãå¹ãããæ¬¡ã ã«æµããŠããŸããããããèŠãªããæãåããã®ã¯ãç¥ããªã人ãã¡ãšåãå€ãäžç·ã«ä¹ãè¶ããŠããæèŠã§ãããããããã®æ å ±ã«ããã£ãåãä»åºŠã¯ç§ãã¡ã®å€ã®åºæ¥äºãã·ã§ã¢ããããšæããŸãã
å®ç§çŸ©åã®ç¯å²ã§ã瀟åã»ãµãŒãã¹åã»ãã¡ã€ã³ã»IP ã¢ãã¬ã¹ã»èŠæš¡ãªã©ã¯äŒããŠããŸããèšäºäžã®ãã¡ã€ã³ã¯
example.comã«çœ®ãæããŠããŸããæ§æãèšå®ã¯åœå€ã®æç¹ã®ãã®ã§ããã®åŸã®å¯Ÿå¿ç¶æ³ã¯æžããŠããŸããã
ãŸããæŸã£ãŠãããšäœãèµ·ããã®ã
å€ã®è©±ã®åã«ããã®è匱æ§ãäœãèš±ãã®ããæžããŠãããŸãããããç¥ããªããšããã®å ã®å¯Ÿå¿ã倧ããã«èŠãããšæããŸããå ¬éãããŠããåæãããšã«æŽçããŸããã
æ»æè ãçŽæ¥æã«å ¥ãããã®ã¯ 2 ã€ã§ãã
| åŸããããã® | äžèº« | åºå ž |
|---|---|---|
| ä»»æã®ã³ãŒãå®è¡ | ãã°ã€ã³äžèŠã§ãPHP ãåãããŠãããŠãŒã¶ãŒã®æš©éã§ã³ãã³ããå®è¡ã§ãã | php.netãSansec |
| ã¡ã¢ãªã®äžèº« | Heartbleed ã®ããã«ãä»ã®å©çšè ã®ãªã¯ãšã¹ãã«å«ãŸãããã¹ã¯ãŒãã»ã»ãã·ã§ã³ããŒã¯ã³ã»API ããŒãæŒããã | Sansec |
2 ã€ç®ãå°å³ã«æããšããã§ãããµãŒããŒã«äœãæžã蟌ãŸãããäŸµå ¥ã®çè·¡ãæ®ããªããŸãŸãå©çšè ã®ãã°ã€ã³æ å ±ã ããæãããå¯èœæ§ããããŸãã
ããããå ã¯ãWeb ãµãŒããŒã§ã³ãŒããå®è¡ãããå Žåã«äžè¬ã«èµ·ããããšã§ããä»åã®æ»æã§å®éã«èŠ³æž¬ãããåãã§ã¯ãããŸããã
- ããŒã¿ã®æã¡åºãïŒã¢ããªã¯ DB ã«æ¥ç¶ããããã«æ¥ç¶æ å ±ãæã£ãŠããŸããPHP ã®æš©éã§èªããã®ã§ãå©çšè ã®æ å ±ããŸãšããŠæã¡åºããŸã
- ã¯ã©ãŠããžã®æšªå±éïŒEC2 ã®äžãªããã€ã³ã¹ã¿ã³ã¹ã«ä»ããããŒã«ã®èªèšŒæ å ±ãã¡ã¿ããŒã¿ããåããããŸãããã®ããŒã«ã«ã§ããããšã¯ãæ»æè ã«ãã§ããŸã
- å± åº§ãïŒWeb ã·ã§ã«ã cron ãä»èŸŒãŸãããšãããšãã PHP ãæŽæ°ããŠãæããŸãããè匱æ§ããµããããšãšãå ¥ãããåŸãçä»ããããšã¯å¥ã®äœæ¥ã§ã
- å©çšè ãžã®è¢«å®³ïŒããŒãžãæžãæãããããšã被害ã¯èªç€Ÿã®ãµãŒããŒã®å€ãå©çšè ã®ç«¯æ«ã«åºãããŸã
1 æ¬ã® POST ã§ããããŸã§ã®å ¥å£ãéããŸããå®éããã®å€ã¯ç§ã®æ åœãµã€ãã«ããã® POST ãå±ããŸããïŒåŸåã§æžããŸãïŒã
ãã®å€ãæ¢ãŸã£ããµãŒãã¹
æ¢ãã倿ããã倧æãµãŒãã¹ãå€ããããŸãããå ±éã§ç¢ºèªã§ããäž»ãªãã®ã§ãïŒæå»ã¯å ±éæç¹ã®ãã®ã§ããã®åŸå€ãã£ãå¯èœæ§ããããŸãïŒã
| ãµãŒãã¹ | éå¶ | åæ¢ã®æé垯ïŒå ±éæç¹ïŒ | åºå ž |
|---|---|---|---|
| BASE | BASE | 10/21 15:50 ã 10/22 7:00 | GIGAZINE |
| ã¡ãã³ããã¯ã¹ | ã¡ãã³ããã¯ã¹ | 10/21 17:30 ã 10/22 10:00 | åäž |
| ãã³ãã³ | KADOKAWA | 10/21 19:00 ã æªå® | åäž |
| ãã³ãã€ãã£ã³ãã« | ãã³ã〠| 10/21 20:00 ã æªå® | åäž |
| pixiv | pixiv | ã 10/22 æ©æ | åäž |
| BOOKâWALKER | BOOKâWALKER | ã 10/22 æ©æ | åäž |
| ãŠãåš ããªãã£ãŒããŒã㌠| Cygames | 10/21 22:00 ãã ãïŒ23 æããååãïŒ | åäž |
| ã°ã©ã³ãã«ãŒãã¡ã³ã¿ãžãŒ | Cygames | 10/21 22:00 ãã ãïŒ23 æããååãïŒ | åäž |
| Shadowverse: Worlds Beyond | Cygames | 10/21 23:00 ãã ã æªå® | ãã¡ãé |
| Pokémon Sleep | ãã±ã¢ã³ | 10/21 23:00 ã æªå® | GIGAZINE |
| ããã³ããŒã³ãºã¬ãã | WFS | 10/21 22:30 以é | Game SparkïŒYahoo!ãã¥ãŒã¹ïŒ |
| makeshop / ã«ã©ãŒããŒã·ã§ãã | å瀟 | 10/21 å€ ã 10/22 | æ¥æ¬ãããçµæžæ°èïŒYahoo!ãã¥ãŒã¹ïŒ |
ã²ãŒã ãECãåç»ãé»åæžç±ãšãæ¥çš®ãåããæ¢ãŸã£ãŠããŸããäžã®å ¥å£ã®åºããèãããšã売äžãææŸããŠã§ãæ¢ããå瀟ã®å€æã®éããããåãããŸããBASE ã®ããã« 23 æã®ä¿®æ£çå ¬éãåŸ ããã倿¹ããæ¢ãããšããããããŸããã
æ¢ããã®ã¯æ£ããå€æã® 1 ã€ã§ãããã ãæ¢ãããšå£²äžãå©çšè ã®ä¿¡é ŒãåãããŸããA 瀟ã®ãµã€ãã¯ãæ¢ããã«å®ãéãéžã³ãŸããã
å šäœã®æµã
å€ã®å§ãŸãïŒå®ãçžæã¯ã©ããªç°å¢ã ã£ãã
| é ç® | å 容 |
|---|---|
| ãµã€ã | è€æ°ã®ãµãŒãã¹ïŒåããã³ãã¬ãŒãã§äœãããæ§æïŒ |
| æ§æ | AWS ã® ALB â EC2ïŒnginx + php-fpmïŒããµã€ãããšã«è€æ°å°ã ASG ã§ç®¡ç |
| PHP | 7.4 ç³»ããµãŒãããŒãã£ã®ãªããžããªããå ¥ãããã®ã§ãå ¬åŒãµããŒã㯠2022 幎ã«çµäºæžã¿ |
| 管çç»é¢ | åããµãŒããŒã®å¥ãã¹ãåã§åäœãnginx ã§æ¥ç¶å IP ãå¶éæžã¿ |
| WAF | ãªã |
ãã¡ã°ãåä»ãªã®ã¯ PHP 7.4 ã§ãããphp.net ã®åç¥ã§ã¯ãä¿®æ£çãåºãã®ã¯ 8.2ã8.5 ã ãã§ãã7.4 / 8.0 / 8.1 ã«ã¯ããœãŒã¹ã«åœãŠãæå°éã®ãããïŒGitHub ã®ãã©ã³ãïŒããåºãŠããŸãããããã±ãŒãžã§å ¥ãã PHP ã«ãæŽæ°ãå ¥ããŠçµãããã¯ã§ããªãç¶æ³ã§ããã
åç¥ãåŸ ã€éïŒããŒãžã§ã³ã ãã§å€å®ããªã
æåã«ã圱é¿ã®å€å®è»žã 3 ã€ã«æ±ºããŸããã
- 圱é¿ããããŒãžã§ã³ã
- æ»æãæç«ããæ¡ä»¶ïŒèšå®ã»çµè·¯ïŒãããã
- ã€ã³ã¿ãŒãããããå±ãã
調æ»ã«ã¯ AWS Systems ManagerïŒSSMïŒã® Run Command ã䜿ããèªã¿åãå°çšã®ã³ãã³ãã ããå šå°ã«æµããŸãããWeb 以å€ã®çšéã®ãµãŒããŒã«ã PHP ãå ¥ã£ãŠããããšãããã®ã§ããµãŒããŒåã§å¯Ÿè±¡ããå€ããå šå°ãèŠãŠããŸãã
# å
šå°ã«æµãã確èªã®äžéš(èªã¿åãã®ã¿)
php -v | head -1
php -i | grep -E '^session\.upload_progress\.enabled'
ss -ltnp | grep php-fpm # php-fpm ãã©ãã§åŸ
ã¡åããŠããã
çµæã¯æ¬¡ã®ãšããã§ãã
| 察象 | å€å® | çç± |
|---|---|---|
| Web ãµãŒããŒã® PHP | 圱é¿ããã»é« | å
šå° 7.4ãæ»æã«é¢ä¿ãããšããã session.upload_progress.enabled ãæ¢å®å€ã® On |
| åãæ¥ã«å ±ãããã nginx ã®è匱æ§ïŒPoolSlipïŒ | 圱é¿äœ | çºåæ¡ä»¶ã«ãªã rewrite ã®æžãæ¹ããªãã£ã |
| Web 以å€ã®ãµãŒããŒã® php-fpm | å€ããå±ããªã | 127.0.0.1 ã§ããåŸ ã¡åããŠããããnginx ããæž¡ãçµè·¯ããªã |
WAF ãèšèšããïŒæ¢ããåã«ãäœãå£ãããã調ã¹ã
å ±éã«ãããšãæ»æã«ã¯ multipart/form-dataïŒãã¡ã€ã«ã¢ããããŒã圢åŒïŒã®ãªã¯ãšã¹ãã䜿ãããŸããããã§ãmultipart ãå
¥å£ã§æ¢ãããWAF ãèããŸããã
ãã ã倧ãã£ã±ã«æ¢ãããšãæ£èŠã®æ©èœãå£ããŸããææ¡ã®åã«ã2 ã€ã®æ¹åãã圱é¿ç¯å²ã確ãããŸããã
-
ãœãŒã¹ã³ãŒãïŒéãåŽïŒããã³ãã®
FormDataããã€ãã£ãã¢ããªã®ãã©ãŒã éä¿¡ãªã©ïŒãšãåãåãåŽïŒ$_FILESãªã©ïŒãæŽãåºã- multipart ã䜿ã£ãŠããã®ã¯ã管çç»é¢ã®ç»åã»CSV å蟌ïŒåæ°ç³»çµ±ïŒã ãã§ãããå ±éã®éä¿¡åŠçãèŠã€ãã£ãã®ã§ãå€å®ã¯ãã確å®ããŸãã
- ãã€ãã£ãã¢ããªã¯çã®ãã€ãåããWeb ã®ã¢ã€ã³ã³ç»é²ã¯ base64 æååãéåžžã®ãã©ãŒã 圢åŒã§éã£ãŠããŸãã
- ã¢ã¯ã»ã¹ãã°ïŒPOST ã®éãå ãã¹ããµããã¡ã€ã³ããšã«éèšããã³ãŒãã®èª¿æ»çµæãšé£ãéãããªãããç §åãã
çµè«ã¯ã管çç»é¢ä»¥å€ã®ãã¹ãã«æ¥ã multipart ã Block ãããªããå©çšè ãžã®åœ±é¿ã¯ãªããã§ããã
é€å€æ¡ä»¶ã¯ãããæããããåæã§äœã
ãHost ã管çç»é¢ãªãé€å€ããšããæ¡ä»¶ã¯ãHost ããããŒãåœè£ ããã°ããæããããŸããããã§ãåœè£ ãããå Žåã«äœãèµ·ãããã 2 段ã§ç¢ºãããŸããã
- 管çç»é¢ã§ PHP ã«å±ã API ã®çµè·¯ã¯ãnginx ã® IP å¶éïŒ
allow+deny allïŒã®å åŽã«ãããå ¥ãåã® location ãŸã§ç¢ºèªãã - æ¥ç¶å IP ã¯ãALB ãä»ãè¶³ãã X-Forwarded-For ã®å€ã§å€å®ããŠããïŒã¯ã©ã€ã¢ã³ããèªåã§æžããå€ã¯ä¿¡ããªãèšå®ïŒããªã®ã§ IP ã®åœè£ ãå¹ããªã
ãã 1 ã€ãWeb ACL 㯠ALB ããšã«åããŸããã1 ã€ã® ACL ã§å šãµã€ãã®ç®¡çç»é¢ãé€å€ãããšãå¥ãµã€ãã® ALB ã«ãä»ãµã€ãã®ç®¡çç»é¢ã® Hostããä»ããŠéãã ãã§é€å€ãããæããŸããããæããå ã¯ããã® ALB ã® default serverïŒPHPïŒã§ãã
ã«ãŒã« 1 ã®èãæ¹ã JSON ã§æžããšã次ã®ããã«ãªããŸãïŒãã¡ã€ã³ã¯ä»®ã®ãã®ïŒã
{
"Name": "block-multipart-except-admin",
"Priority": 0,
"Action": { "Block": {} },
"Statement": {
"AndStatement": {
"Statements": [
{
"ByteMatchStatement": {
"SearchString": "multipart",
"FieldToMatch": { "SingleHeader": { "Name": "content-type" } },
"TextTransformations": [{ "Priority": 0, "Type": "LOWERCASE" }],
"PositionalConstraint": "CONTAINS"
}
},
{
"NotStatement": {
"Statement": {
"ByteMatchStatement": {
"SearchString": "admin.site-a.example.com",
"FieldToMatch": { "SingleHeader": { "Name": "host" } },
"TextTransformations": [{ "Priority": 0, "Type": "LOWERCASE" }],
"PositionalConstraint": "EXACTLY"
}
}
}
}
]
}
},
"VisibilityConfig": {
"SampledRequestsEnabled": true,
"CloudWatchMetricsEnabled": true,
"MetricName": "block-multipart-except-admin"
}
}
ãã®ã»ãã« AWS ãããŒãžãã«ãŒã«ïŒCommonRuleSet / KnownBadInputsïŒãããŸã㯠CountïŒèšé²ã®ã¿ïŒ ã§å ¥ããŸããããã°ã¯ CloudWatch Logs ã«éããCount ã Block ã«ãªã£ããã®ã ãã 30 æ¥éæ®ããŸãã
æåã¯å šã«ãŒã«ã Count ã§å ¥ãã誀æ€ç¥ããªãã®ãèŠãŠãã Block ã«åãæ¿ããæ®µåãã«ããŸããã
23:00 å ¬åŒåç¥ïŒ7.4 ã«ãå®å šãªæ«å®çã¯ãªãã
23 æã« PHP ã®å
¬åŒåç¥ãåºãŸãããæ«å®çãšããŠç¢ºå®ããã®ã¯ session.upload_progress.enabled=0 ã§ãããã ãåç¥ã«ã¯ãå®å
šãªæ«å®çã¯ãªããæŽæ°ãå¯äžã®å®å
šãªéžæããšãæžãããŠããŸãããä¿®æ£çã®å¯Ÿè±¡å€ã® 7.4 ã«ãšã£ãŠã¯ãæ«å®çãç©ã¿éãããããããŸããã
èšå®ã¯ php.ini æ¬äœãè§Šããããã¡ã€ã«ã 1 ã€è¶³ã圢ã«ããŸãããåãæ»ãã¯ããã®ãã¡ã€ã«ãæ¶ã㊠reload ããã ãã§ãã
; /etc/php.d/99-php2shell-mitigation.ini
; CVE-2026-109618 / CVE-2026-109619 ã®æ«å®ç
session.upload_progress.enabled = 0
reload ã§ 502 ãåºããªã
åæ ã«ã¯ php-fpm ã® reload ãèŠããŸãããšããããã®ç°å¢ã¯ process_control_timeout ãæ¢å®å€ã® 0 ã®ãŸãŸã§ããããã®èšå®ã ãš reload ã®ç¬éã«ãåŠçäžã®ãªã¯ãšã¹ãã 502 ã«ãªããŸãã
ããã§ ALB ãã 1 å°ãã€å€ããŠåæ ããŸããã
1 å°åã®æé ãã·ã§ã«ã§æžããšã次ã®ããã«ãªããŸãã
TG_ARN="arn:aws:elasticloadbalancing:...:targetgroup/site-a/..."
ID="i-0123456789abcdef0"
aws elbv2 deregister-targets --target-group-arn "$TG_ARN" --targets Id="$ID"
aws elbv2 wait target-deregistered --target-group-arn "$TG_ARN" --targets Id="$ID"
# 察象å°ã®äžã§(SSM Run Command çµç±)
# cp 99-php2shell-mitigation.ini /etc/php.d/
# systemctl reload php-fpm
# php-fpm -i | grep session.upload_progress.enabled # => Off
aws elbv2 register-targets --target-group-arn "$TG_ARN" --targets Id="$ID"
aws elbv2 wait target-in-service --target-group-arn "$TG_ARN" --targets Id="$ID"
äœæ¥äžã¯ Web ãµã€ãã« 1 ç§ããã«ãªã¯ãšã¹ããéãç¶ãããã¹ãŠ 200 ã®ãŸãŸã§ãããæ¬çªãšæ€èšŒç°å¢ã®åæ°å°ããçŽ 10 åã§çµããŠããŸãã
23:37 æåã®æ»æïŒæ¢ããã®ã¯ WAF ã§ã¯ãªãã£ã
WAF ã Count ã§å ¥ããçŽåŸããããã°ã«æ¬¡ã®èšé²ãæ®ãå§ããŸããã
| æå» | éä¿¡å | å 容 | çµæ |
|---|---|---|---|
| 23:37 | è±åœã® VPS |
POST https://example.com/ïŒapex ãã¡ã€ã³ïŒã« multipartããµã€ãºã¯ 8,828 B ãš 25,212 B |
WAF 㯠Count äžãALB ã®ãapex â wwwã301 ãªãã€ã¬ã¯ãã§æ¢ãŸã£ã |
| 23:37 | åäž | 301 ã远ã£ãŠ GET https://www.example.com/ïŒæ¬æãªãïŒ |
GET ãªã®ã§æ»æããŒã¿ã¯éã°ããªã |
æåã®æ»æãæ¢ããã®ã¯ãå¶ç¶ã«ã ALB ã®ãªãã€ã¬ã¯ãã®ã«ãŒã«ã§ãããæ»æããŒã«ã¯ apex ãã¡ã€ã³ãçã£ãŠããŠãããã 301 ã远ããšãã« POST ã GET ã«å€ããŠããŸããããã®ããæ»æããŒã¿ã PHP ãŸã§å±ããŠããŸããã
é²åŸ¡ã®ã€ããã§å ¥ããã«ãŒã«ã§ã¯ãªãã£ãã¯ãã® 301 ãããã®å€ã®æåã®é²è¡ç·ã«ãªããŸããããšã¯ããéãè¯ãã£ãã ãã§ãwww ãçŽæ¥çãããŠããã Count ã® WAF ã¯çŽ éãã§ãããæ¥ãã§ Block ã«åãæ¿ããŸãã
Block ã«åãæ¿ããããäœãæ¢ãŸããªããªã£ã
Count ãã Block ãžã®åãæ¿ãã§ã¯ãget-web-acl ã§åãåºãã Rules ã® Action ã ããæžãæãããã®ãŸãŸ update-web-acl ã«æ»ããŸããããšã©ãŒã¯åºãŸããããšããããåäœç¢ºèªã®ãªã¯ãšã¹ãã 403 ã«ãªããŸããã§ããã
åäœç¢ºèªã«ã¯ãContent-Type ã ã multipart ã«ãããæ¬æã®ãªã GET ãéçãã¡ã€ã«ã«éã£ãŠããŸããPHP 㯠GET ã®æ¬æã multipart ãšããŠè§£æããªãã®ã§ãæ¬çªã«éã£ãŠãç¡å®³ã§ãã
curl -s -o /dev/null -w '%{http_code}\n' \
-H 'Content-Type: multipart/form-data; boundary=x' \
https://www.example.com/robots.txt
# æåŸ
å€: 403 å®é: 200
åå ã¯æååã®æ±ãã§ããã
-
get-web-aclãè¿ãSearchString㯠base64 ã«ãªã£ãŠãã - ããã
--cli-binary-format raw-in-base64-outä»ãã§æ»ããšãbase64 ã®æååãã®ãã®ãæ€çŽ¢æååãšããŠç»é²ããã - çµæã
multipartã§ã¯ãªãbXVsdGlwYXJ0ãæ¢ãã«ãŒã«ã«ãªã£ãŠãã
# ç»é²ãããŠããæ€çŽ¢æååããã³ãŒãããŠç¢ºããã
aws wafv2 get-web-acl --scope REGIONAL --name site-a-acl --id "$ACL_ID" \
| jq -r '.WebACL.Rules[0].Statement.AndStatement.Statements[0]
.ByteMatchStatement.SearchString' \
| base64 -d
# æ£ãããã° multipartãäºéã«ãªã£ãŠããã° bXVsdGlwYXJ0
ãã®é WAF ã¯ãbXVsdGlwYXJ0 ãšãã Content-Type ãæ¥ãã®ãçé¢ç®ã«åŸ
ã¡ç¶ããŠããŸããããããªãªã¯ãšã¹ãã¯æ¥ãŸããã
æå ã«ãã£ãå¹³æã®å®çŸ©ããå ¥ãçŽãããã³ãŒãããå€ãš curl ã® 403 ã®äž¡æ¹ã確ãããŸããããšã©ãŒãåºãªããŸãŸå¹ããŠããªãããäžçªæããšå®æããå Žé¢ã§ãã
23:51ã 5 ã€ã® IP ãããåãæ»æãæ¥ã
Block ã«åãæ¿ããããšãåã 2 çš®é¡ã®ãµã€ãºã® POST ãæ¬¡ã ã«æ¥ãŠããã¹ãŠ Block ãããŸããã
| æå» | éä¿¡å | å 容 | çµæ |
|---|---|---|---|
| 23:51ã | ãã©ã³ã¹ã»ã¢ã¡ãªã«ã»ãã€ãã»ããŒã©ã³ãã® VPSïŒ5 IPïŒ | 8,828 B ãš 25,212 B ã® multipart POST | WAF ã Block |
- User-Agent ã¯ãã¹ãŠ
Python aiohttpãæ»æããåŽãéåæ I/O ã§å¹çåããŠããããã§ã - åãããŒã«ããåããµã€ãºã®ããŒã¿ããè€æ°ã®åœã® IP ããé ã«å±ããŠãããè€æ°ã®æ ç¹ããåæã«ã¹ãã£ã³ããŠãããšã¿ããã
- éä¿¡å
ã® 1 ã€ã¯ãæ°æéåã«
GET /ã 1 ä»¶ã ãéã£ãŠãããäžèŠãšã¿ããã
WAF ã®ãã°ã«ã¯éä¿¡ããŒã¿ã®äžèº«ãæ®ããŸããããªã®ã§ããã§ã¯ãä»åã®è匱æ§ãçã£ããšã¿ãããéä¿¡ããšæžããŠããŸãã
å ¥ãããŠããªããã確ããã
ãã®ããã§ããµãŒããŒåŽã«è¢«å®³ããªãããèªã¿åãå°çšã§ç¢ºãããŸããã
| 確èªé ç® | ãªãèŠãã | çµæ |
|---|---|---|
| php-fpm ã® worker ã®ç°åžžçµäºïŒsignal 11 ãªã©ïŒ | ã¡ã¢ãªç Žå£åã®æ»æã§åºããã | 10 æã¯æåã® 1 ä»¶ã®ã¿ |
| ã¡ã¢ãªäžéã»å®è¡ã¿ã€ã ã¢ãŠãã®ãšã©ãŒ | äžæ¹ã® CVE ã®çºåçµè·¯ | 10 æã¯ 0 ä»¶ |
| php-fpm é äžã®åããã»ã¹ | ã·ã§ã«ãèµ·åãããŠããªãã | ãªã |
| çŽè¿ã§å€æŽããã PHP ãã¡ã€ã«ã»å®è¡ãã¡ã€ã« | Web ã·ã§ã«ã眮ãããŠããªãã | èªåãã¡ã®ãªãªãŒã¹äœæ¥ã®åã ã |
| cron ã®å€æŽã»å€åãéä¿¡ | å± åº§ãã»å€éšãžã®éä¿¡ | ãªã |
確èªããç¯å²ã§ã¯ãäŸµå ¥ãæ¹ããã®çè·¡ã¯ãããŸããã§ããã
åé ã§æžããã1 æ¬ã® POST ã§éãå ¥å£ãã®ããã® 1 æ¬ç®ã WAF ã§æ¢ããŠããããšã«ãªããŸããWAF ããªããã°ã5 IP ã® POST ã¯ãã®ãŸãŸ php-fpm ã«å±ããŠããŸããã
ããã§ã 1 ã€çœ ãèžã¿ãããŠããŸããphp-fpm ã®ãã°ãæ¥å¥ã«æ°ãããšãã21-Oct-2026 圢åŒã®æ¥ä»ãæååã®ãŸãŸäžŠã¹æ¿ãããšãæã®é ã«ãªããŸãããtail ã§åããšçŽè¿ã® 10 æãèœã¡ãŸãã
# NG: æ¥ä»ãæååé ã«äžŠã³ãtail ã§ 10 æã®è¡ãèœã¡ãããšããã
grep 'signal 11' /var/log/php-fpm/error.log | awk '{print $1}' | tr -d '[' \
| sort | uniq -c | tail
# OK: èŠããæã§çµã£ãŠããæ°ãã
grep 'signal 11' /var/log/php-fpm/error.log | grep 'Oct-2026' \
| awk '{print $1}' | tr -d '[' | sort | uniq -c
å ±åãæžãåã«æ°ä»ããŠãæ°ãçŽããŸããã
æ¥ä»ãå€ããããïŒRemi ã« 7.4 ã®æŽæ°ãåºãŠãã
PHP 7.4 ã RPM ã§å
¥ããŠããç°å¢ã®å€ãã¯ãRemi ã®ãªããžããªïŒrpms.remirepo.netïŒã䜿ã£ãŠããŸããphp.net ã®åç¥ã¯ããã®ãªããžããªã«ã€ããŠããæžããŠããŸããã
If you rely on the volunteer-maintained
rpms.remirepo.net, we urge you to switch to distribution packages or build from source, so you can immediately apply updates. The repo will not have updates today.
(PHP 2026 News Archive)
ã仿¥ã¯æŽæ°ãåºãªããã¯ãã§ããããšãããæ¥ä»ãå€ããããã«ãªããžããªãçŽæ¥èŠããšã7.4.33-31 ã 10/21 ä»ãã§äžãã£ãŠããŸããããã©ã³ãã£ã¢ã®æ¹ã®ã仿¥ãã¯ãåç¥ãããå°ãé·ãã£ãããã§ããRPM ã®å€æŽå±¥æŽã«ã¯ãä»åã® CVE ãæžãããŠããŸãã
2026-10-21 Remi Collet <remi@remirepo.net> - 7.4.33-31
- Mitigation fix Avoid state corruption via bailout
CVE-2026-109618, CVE-2026-109619
| 眮ãå Žæ | ããã±ãŒãž |
|---|---|
| EL8 / EL9 / EL10 ã® php74 ã¢ãžã¥ãŒã« |
php-* 7.4.33-31 |
| EL8 / EL9 ã® safeïŒSCL 圢åŒïŒ |
php74-php-* 7.4.33-31 |
ãã®æç¹ã§ã¯ Remi ã®ããã°ã«åç¥èšäºã¯ãŸã ãããŸããã§ãããåç¥ãåŸ ã£ãŠãããšæ°ä»ããŸãããRemi ã䜿ã£ãŠãããªããããã°ã§ã¯ãªããªããžããªãšå€æŽå±¥æŽãèŠãã»ããæ©ãã§ãã
# æŽæ°(ã¢ãžã¥ãŒã«åœ¢åŒã®å ŽåãSCL ãªã 'php74-php*')
sudo dnf update 'php*'
# å
¥ã£ããã倿Žå±¥æŽã§ç¢ºããã
rpm -q --changelog php-common | head -5
# CVE-2026-109618, CVE-2026-109619 ãåºãã°å
¥ã£ãŠãã
泚æç¹ã 2 ã€ãããŸãã
- 倿Žå±¥æŽã®æžãæ¹ã¯ãMitigation fixïŒç·©åçïŒãã§ããæ¬å®¶ 8.x ã®ä¿®æ£ãšåããã©ããã¯ããã®èšè¿°ããã¯å€æã§ããŸãã
- ASG ã§ç®¡çããŠãããªããæã§æŽæ°ããå å®¹ã¯æ¬¡ã«èµ·åããå°ã«ã¯åæ ãããŸãããèµ·åãã³ãã¬ãŒãïŒAMIïŒãŸã§çŽããŠå®äºã§ããå€ã«å ¥ãã ini ãåãã§ã
çœ ããã 2 ã€
ãããŒãžãã«ãŒã«ããããªã Block ã«ãããšãã¢ããªãæ¢ãŸã
CommonRuleSet ã® NoUserAgent_Header ãããã€ãã£ãã¢ããªãš WebSocket ã®æ£åžžãªéä¿¡ã«å€§éã«äžèŽããŠããŸãããã©ã¡ãã User-Agent ãä»ããã«éä¿¡ããããã§ããSizeRestrictions_Body ã¯ç®¡çç»é¢ã® CSV å蟌ã«äžèŽããŠããŸããã
ããããŒãžãã«ãŒã«ãå ¥ããŠããã Blockãã«ããŠããããã¢ããªãå šéšæ¢ãŸã£ãŠããŸãããCount ã§å ¥ããŠãã°ãèŠã段åãã«æãããŠããŸãã
CloudWatch ã¡ããªã¯ã¹ã® Rule 次å ã¯ã«ãŒã«åã§ã¯ãªã
WAF ã® BlockedRequests ã Rule 次å
ã§åããšãã«æå®ããã®ã¯ãã«ãŒã«åã§ã¯ãªã VisibilityConfig.MetricName ã§ããã«ãŒã«åãæž¡ããš 0 ä»¶ãè¿ããŸãããBlock ãããŠããªãããšèªã¿éããããŸããã
ç¿æ¥ä»¥éïŒç£èŠã Skill ã«ãã
ãä»å€å ¥ããŠçµãããã«ããªãããã«ãWAF ãã°ã®å®æç¢ºèªã Claude Code ã® Skill ã«ããŸãããèªã¿åãå°çšã§ã次ã確èªããŸãã
- èšå®ã厩ããŠããªããïŒã«ãŒã«ã®åäœãæå³ãããŸãŸããæ€çŽ¢æååããã³ãŒããããš
multipartãïŒäºé base64 ã®åçºæ€ç¥ïŒ - ã«ãŒã« 1 ã® Block ä»¶æ°
- Block ããéä¿¡ã®éä¿¡å ïŒIPã»åœã»User-Agentã»ãµã€ãºïŒ
- ãããŒãžãã«ãŒã«ã®æ€ç¥ïŒã¢ããªã®æ£åžžãªéä¿¡ã«åœãããã®ã¯é€ãïŒ
ååã®å®è¡ã§ãäžã®ã5 IP ããã® BlockããèŠã€ãã£ãŠããŸãã
ãŸãšãïŒåãå€ãè¿ãããšãã®ãã§ãã¯ãªã¹ã
- 圱é¿ã¯ããŒãžã§ã³ã ãã§å€å®ããããããŒãžã§ã³ããæç«æ¡ä»¶ããå€ããå±ãããã® 3 軞ã§èŠã
- 調æ»ã¯èªã¿åãå°çšã®ã³ãã³ãã§ããµãŒããŒåã§å€ããå šå°ã«æµã
- å ¥å£ã§æ¢ããåã«ãäœãå£ããããã³ãŒããšã¢ã¯ã»ã¹ãã°ã®äž¡æ¹ãã調ã¹ã
- é€å€æ¡ä»¶ã¯ Host åœè£ ã»ALB ããŸããã åœè£ ãåæã«äœãïŒACL 㯠ALB ããšïŒ
- WAF 㯠Count ã§å ¥ãããã°ãèŠãŠãã Block ã«åãæ¿ãã
- åãæ¿ããããcurl ã§å®éã« 403 ã«ãªãããšãæ€çŽ¢æååã®ãã³ãŒãçµæã確ããã
- php-fpm ã® reload 㯠ALB ãã 1 å°ãã€å€ããŠè¡ãã確èªãªã¯ãšã¹ããéãç¶ãã
- 䟵害ã®ç¢ºèªã¯ãç°åžžçµäºã»åããã»ã¹ã»å€æŽãã¡ã€ã«ã»cronã»å€åãéä¿¡ãŸã§èŠã
-
Remi ã䜿ã£ãŠãããªããããã°ã§ãªããªããžããªãš
rpm -q --changelogã§æŽæ°ã確ããã - ASG ç°å¢ã§ã¯ AMI / èµ·åãã³ãã¬ãŒããžã®åæ ãŸã§ãã£ãŠå®äºã«ãã
ããã«ããŒãžã§ã³ãäžããããªãæ¹åãã«ãphp.net å
¬åŒã®æ«å®å¯Ÿç 7 ã€ãšããããããé²ããªãç¯å²ã kenimoto.dev ã«ãŸãšããŸããããã®èšäºã§äœ¿ã£ã ini ãš WAF 以å€ã®çïŒmemory_limitãpost_max_sizeãcgroup ã®äžéãªã©ïŒãå
¥ã£ãŠããŸãã
ç·çã®æçš¿ã«ãã£ããšããããµã€ããæ¢ããã®ãæå¹ãªçã§ãããã ãæ¢ããªããŠãå®ããæã¯ãããŸãããWAF ã ini ãç·©åçã§ãããªããæ ¹æ¬ã®å¯Ÿç㯠8.x ãžã®ç§»è¡ã§ãïŒ2022 幎ã®ãµããŒãçµäºããããã£ãšèšããç¶ããŠãã話ã§ã¯ãããŸããïŒã7.4 ã®ãŸãŸä»åããã®ãã æ¹ã¯ã次ã®å€ãŸã§ã«ã©ããŸã§ç§»è¡ã§ãããã§ããã
ã¹ã©ã€ãã§ãããã
ãã®å€ã®æµãã 15 æã®ã¹ã©ã€ãã«ãŸãšããŸãããããŒã ãžã®å ±æã«ã©ããã
æåŸã«å®£äŒãããŠãã ãããå ¥å£ã§äœãæ¢ããããå ¥ãããŠããªãããã©ã確ãããããåãåãã¯ãAI ãšãŒãžã§ã³ããæ¬çªã«å ¥ãããšãã«ãåºãŠããŸããMCP ãµãŒããŒã®èªèšŒèšèšããOWASP MCP Top 10 ãèžãŸããæ»æãšå¯Ÿçã¯ãæžç±ãMCPå®è·µã»ãã¥ãªã㣠AIãšãŒãžã§ã³ãæä»£ã®Model Context Protocolå®å šéçšã¬ã€ããïŒã€ã³ãã¬ã¹ïŒã«ãŸãšããŸããã
Kindleç ïŒ ããŒããŒããã¯ç
åè
- PHP 2026 News ArchiveïŒphp.netïŒ
- PHPè匱æ§php2shellãæŽæ°åã®å¯Ÿç7ã€ïŒkenimoto.devïŒ
- PHP2Shell: Critical PHP RCEïŒSansecïŒ
- é«åžæ©è on XïŒ2026-10-21 21:55ïŒ
- rpms.remirepo.net enterprise/9/php74
- Remi's RPM repository - Blog
- ãã³ãã³ãpixivãªã©åçš®ãŠã§ããµã€ãããã³ã¢ããªãPHPã®ç·æ¥ãããã«å¯Ÿå¿ããã¹ãã¡ã³ããã³ã¹å ¥ãïŒGIGAZINEïŒ
- ããŠãåšããã°ã©ãã«ããã·ã£ããWBããªã©ãæ¬æ¥ïŒ10/21ïŒ23æããç·æ¥ã¡ã³ãïŒãã¡ãéïŒ

