
Advanced Custom Fields: Extended <= 0.9.2.5 - Nicht authentifizierte Privilegienausweitung über Validierungsumgehung zum Parameter '_acf_post_id'
Advanced Custom Fields: Extended <= 0.9.2.5 - Unauthentifizierte Privilegieneskalation durch Validierungs-Bypass zum '_acf_post_id'-Parameter
Diese kritische Sicherheitslücke (CVSS 9.8) betrifft alle Versionen des beliebten WordPress-Plugins Advanced Custom Fields: Extended (ACF Extended) ab Version 0.9.2.5.
Obwohl in Version 0.9.2.6 behoben, funktioniert die Schwachstelle wie folgt:
Problematische Funktion: Im Zentrum der Schwachstelle steht das ungeprüfte Vertrauen, das die Funktion after_validate_save_post() dem POST-Parameter _acf_post_id entgegenbringt. Das Plugin unterzieht diesen Parameter keiner Validierungs- oder Authentifizierungsprüfung.
Validierungs-Bypass: Durch Manipulation des _acf_post_id-Parameters veranlasst der Angreifer die Funktion, stillschweigend einen Aufräumzweig zu wählen, der alle Validierungsfehler ignoriert, die nicht das Präfix "acfe:" tragen. Dies deaktiviert zwei kritische Sicherheitsprüfungen:
ein Validierungsfehler der Rollenberechtigungsliste, hinzugefügt von acfe_field_user_roles::validate_front_value().
**Administrator-Privilegienschutzfehler, hinzugefügt von acfe_module_form_action_user::validate_action().
Unbefugte Administratorerstellung: Nachdem diese Prüfungen umgangen wurden, wird die Funktion wp_insert_user() mit dem vom Angreifer bereitgestellten Argument "administrator" für die Rolle ausgeführt. Infolgedessen wird ein neues Administratorkonto auf dem System von einem nicht authentifizierten Benutzer erstellt, entgegen dem beabsichtigten Zweck des Plugins.
Logischer Ablauf des Exploit-Codes Das folgende Python-Skript ist ein Proof of Concept, der zeigt, wie diese Schwachstelle ausgenutzt werden kann. Der Code funktioniert, indem er alle notwendigen Schritte automatisiert.