Skip to content

mimikero

Program / Security etc…

Menu
Menu

XServerでexecやshell_execを実行すると、Unable to forkとエラーが出るとき

Posted on 2024年11月30日2024年11月30日 by mimi

PHPでexecやshell_execが動かず、原因究明から解決までを共有します。

問題の発生

PHPのexecやshell_execを使用して、コマンドを実行させたいが、コードを実行させると以下のエラーが発生。

echo exec('echo 2', $out);
→ mod_fcgid: stderr: PHP Warning:  exec(): Unable to fork [echo 2] in 

shell_execでも同様の現象。

結論

WAFがONの状態でした。コマンド対策・PHP対策をOFFにすると動きます。

デフォルトはOFFなのですが、数年前にONにしたことを忘れていました。。

原因解決まで行ったこと

Laravelのtinkerで確認

tinkerを使うと動作することを確認。

php artisan tinker
exec('echo Hello', $output);
= "Hello"

Laravel でなく素PHPで検証

素のPHPに移して実行しても動作せず。

PHPの設定の確認

PHPのdisable_functions設定を確認。
execやshell_execが無効化されている可能性があったため、以下のコードで確認。

var_dump(ini_get('disable_functions'));

結果を見ると、execもshell_execも無効化されていない。

サーバーのリソース制限を確認

レンタルサーバーなので、リソース制限を設定していると考え、ulimitを使って確認。

ulimit -a

open files ・ max user processes の制限もなし。

ドメインを変えて確認

別ドメインで検証したところ、動作を確認。
ああ、忘れていた。WAFの存在を。

WAFの設定変更

設定変更後、問題なく動作。

たまにアクセスログを見ると攻撃がしっかりブロックされているので、結構便利なWAF。
エックスサーバーのWAFはシンプルな設定しかできませんが、個人利用なら十分攻撃を弾いてくれています。

ads

trends post

Spring Boot と Spring Framework バージョン 対応表まとめ(SpringBoot v2,v3)

Excelデータのスクロールバーが短い現象を保存を使わずに直す

エックスサーバーにLaravelプロジェクトをデプロイ

latest post

  • Cockpit-Docker をubuntu20にインストールする
  • PHPのProcessで日本語パラメータを扱うとsurrogates not allowed となる
  • XServerでexecやshell_execを実行すると、Unable to forkとエラーが出るとき
  • tenable解説 混合リソースの検出
  • tenable解説 WebDAV
  • tenable解説 ディレクトリリスト
  • tenable解説 暗号化されていないパスワードフォーム
  • tenable解説 オートコンプリートのパスワードフィールド
  • tenable解説 CVS/SVN ユーザーの漏洩
  • tenable解説 プライベート IP アドレスの漏洩
  • tenable解説 メールアドレスの漏洩
  • tenable解説 バックアップファイル
  • tenable解説 バックアップディレクトリ
  • tenable解説 共通ファイルの検出
  • tenable解説 共通ディレクトリの検出

カテゴリー

  • Authentication & Session
  • BurpSuite
  • Component Vulnerability
  • Data Exposure
  • HTTP Security Header
  • Lodash
  • Moment.js
  • tenable
  • Web Applications
  • Web Servers
  • 未分類
  • 脆弱性解説
©2025 mimikero | WordPress Theme by Superbthemes.com