VYPR
Unrated severityNVD Advisory· Published Dec 16, 2019· Updated Aug 5, 2024

CVE-2019-19826

CVE-2019-19826

Description

The Views Dynamic Fields module through 7.x-1.0-alpha4 for Drupal makes insecure unserialize calls in handlers/views_handler_filter_dynamic_fields.inc, as demonstrated by PHP object injection, involving a field_names object and an Archive_Tar object, for file deletion. Code execution might also be possible.

AI Insight

LLM-synthesized narrative grounded in this CVE's description and references.

Affected products

2

Patches

Vulnerability mechanics

Root cause

"Insecure deserialization: user-supplied input from `$exposed_input['field_names']` and `$exposed_input['combined']` is passed directly to PHP's `unserialize()` without any sanitization or validation."

Attack vector

An attacker sends a crafted HTTP POST request to a Drupal view that uses the Views Dynamic Fields module. The request includes a `field_names` (or `combined`) parameter containing a serialized PHP object, such as an `Archive_Tar` instance with a `_temp_tarname` property set to a target file path [ref_id=1]. When the module calls `unserialize()` on this input (lines 281, 483, or 567), the malicious object is instantiated, and upon destruction the `Archive_Tar::__destruct()` method deletes the specified file via `drupal_unlink()` [ref_id=1]. The attack requires network access to the Drupal site and the ability to submit exposed filter values, but no prior authentication is needed [ref_id=1].

Affected code

The vulnerability resides in `handlers/views_handler_filter_dynamic_fields.inc` at three locations where user-supplied input is passed directly to PHP's `unserialize()` without sanitization: lines 281, 483, and 567 [ref_id=1]. The `$exposed_input['field_names']` and `$exposed_input['combined']` parameters are taken from HTTP POST data and unserialized, allowing an attacker to inject arbitrary PHP objects [ref_id=1].

What the fix does

No patch is published in the supplied bundle; the advisory notes the module is affected through version 7.x-1.0-alpha4 [ref_id=1]. The remediation would require replacing all three `unserialize()` calls with a safe alternative such as JSON decoding or strict input validation, and ensuring that user-supplied data is never passed to PHP's unserialize without sanitization [ref_id=1].

Preconditions

  • configThe Drupal site must have the Views Dynamic Fields module (<=7.x-1.0-alpha4) installed and a view with an exposed dynamic fields filter.
  • networkThe attacker must be able to send HTTP POST requests to the Drupal site (network access).
  • authNo prior authentication is required; the exposed filter is accessible to anonymous users.

Reproduction

Send a POST request to a Drupal view that uses the Views Dynamic Fields exposed filter, including a `field_names` parameter with a serialized PHP object payload. For example, `field_names=a:1:{i:0;O:11:"Archive_Tar":1:{s:13:"_temp_tarname";s:9:"/tmp/test";}}` will delete the file `/tmp/test` on the server [ref_id=1].

Generated on May 25, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

1

News mentions

0

No linked articles in our index yet.