CVE-2026-104747 in Haaken Plugininfo

Summary

by MITRE • 10/06/2026

Unauthenticated PHP Object Injection in Haaken <= 1.5 versions.

Be aware that VulDB is the high quality source for vulnerability data.

Analysis

by VulDB Data Team • 10/06/2026

The vulnerability identified as an unauthenticated PHP object injection flaw within Haaken versions prior to or equal to 1.5 represents a critical security deficiency that allows attackers to execute arbitrary code on the target server without requiring valid credentials. This type of vulnerability stems from the improper handling of user-supplied input during the deserialization process, where data is converted back into executable objects. In PHP applications, object injection occurs when an application accepts serialized data from untrusted sources and passes it directly to functions such as unserialize() or json_decode() with specific options that allow for object instantiation. If the application does not strictly validate the type of data being deserialized or if it relies on a whitelist of allowed classes without sufficient rigor, an attacker can craft malicious payloads containing specially constructed serialized objects. These objects are designed to exploit magic methods within PHP classes, such as __wakeup(), __destruct(), or __toString(), which trigger specific actions when an object is created or destroyed.

The technical mechanism behind this exploitation involves the manipulation of the serialization format itself. An attacker constructs a payload that includes references to existing classes available in the application's environment, often referred to as gadget chains. By injecting these serialized strings into input vectors such as HTTP parameters, cookies, or POST data, the attacker forces the PHP interpreter to instantiate objects with malicious properties. Once instantiated, the internal methods of these objects are executed automatically by the runtime engine. This process bypasses standard authentication mechanisms because the vulnerability exists at a lower level in the application logic, often within utility functions or framework components that handle input processing before access control checks are fully enforced. The lack of authentication requirement significantly lowers the barrier to entry for attackers, enabling remote code execution from anywhere on the internet with minimal effort and specialized tools like PHPGGC which automate the generation of such payloads based on known vulnerable libraries.

The operational impact of this vulnerability is severe, typically resulting in full system compromise. Since PHP scripts often run under the context of a web server user or a specific application user, successful exploitation can lead to unauthorized access to sensitive data stored within the database, modification of configuration files, and complete control over the underlying operating system depending on file permissions and service configurations. Attackers may use this foothold to deploy additional malware, establish persistent backdoors for long-term access, pivot into internal network segments, or exfiltrate confidential information such as user credentials, financial records, or intellectual property. The absence of authentication means that automated scanning tools can rapidly identify vulnerable instances across the internet, leading to widespread exploitation and potential botnet recruitment if left unpatched.

Mitigation strategies must focus on immediate remediation through software updates and architectural improvements. The primary defense is to upgrade Haaken to a version greater than 1.5 where this vulnerability has been addressed by developers who likely implemented stricter input validation or removed the vulnerable deserialization code paths. For systems that cannot be immediately updated, implementing strict allowlists for class names during deserialization can prevent the instantiation of arbitrary objects. Additionally, enabling PHP's built-in filter_var function with specific flags to restrict unserialization to only expected data types provides an additional layer of defense. It is also advisable to disable dangerous functions like unserialize() if they are not strictly necessary and to ensure that error reporting does not leak stack traces or class names that aid in crafting payloads. Regular security audits and static code analysis tools should be employed to detect similar patterns across the application codebase, ensuring compliance with industry standards such as CWE-502 for Deserialization of Untrusted Data and aligning with MITRE ATT&CK techniques related to Initial Access via Web Application Exploitation.

Responsible

Patchstack

Reservation

10/02/2026

Disclosure

10/06/2026

Moderation

accepted

EPSS

0.00000

KEV

no

Activities

low

Sources

Do you want to use VulDB in your project?

Use the official API to access entries easily!