Kodeo Admin UI full privilege escalation

Abgelegt unter Allgemein am 10.12.2022

Kodeo Admin UI prior to version 1.1.9.2 is vulnerable to

In classes/class-admin-ui.php on line 511 the public function kaui_notice_dismissed gives a potential attacker full control by modifying cookie values (either his own or get an admin to login).


public function kaui_notice_dismissed() {
if( !empty( $_POST['id'] ) ) {
$notice_id = $_POST['id'];
if( !empty( $_COOKIE['kaui_dismissed_notices'] ) ) {
$dismissed_notices_cookie = json_decode( stripslashes( $_COOKIE['kaui_dismissed_notices'] ), true );
} else {
$dismissed_notices_cookie = array();
}
$dismissed_notices_cookie[] = $notice_id;
$dismissed_notices_cookie = json_encode( $dismissed_notices_cookie );
setcookie( 'kaui_dismissed_notices', $dismissed_notices_cookie );
wp_send_json_success();
}
wp_send_json_error();
}

One potential exploit in this WordPress plugin is that the $_COOKIE[‚kaui_dismissed_notices‘] variable is not being properly sanitized or validated before it is used.
This could allow an attacker to submit arbitrary input through the kaui_dismissed_notices cookie, which could potentially be used to perform an SQL injection, remote code execution or other types of malicious activity.
To exploit this vulnerability, an attacker could submit any code to get executed serverside or on client side.
This could result in data loss or other forms of damage.

To mitigate this issue, the code should validate and sanitize the kaui_dismissed_notices input before using it.
Can be done using the wp_kses() function to strip out any potentially dangerous HTML or script tags, or by using a whitelist of allowed values for the kaui_dismissed_notices parameter.

Additionally, the code should check the value of $_COOKIE[‚kaui_dismissed_notices‘] to ensure that it is not empty or null before using it.


Kodeo Admin UI – oder wir fangen das Programmieren vielleicht doch noch mal von vorne an… *seufz*

Abgelegt unter Aufklärung, Code, Nightshift, Wordpress am 10.12.2022

Es gibt Tage, die laufen nicht so optimal, und es gibt Tage da gerät man an Menschen die frei von der Leber einfach Quark ins WordPress-Repository kippen und dann noch stolz drauf sind.
Nennt sich dann Kodeo Admin UI.

Davon mal abgesehen, das man dort so verantwortungsvoll war, und als Author-URL kodeo.io genannt hat…
(Screener aus dem Source hier, nicht das sich das durch Geisterhand wieder ändert…)
Ist natürlich nicht mehr deren URL (sondern meine), aber ist natürlich klasse, könnte ich einfach deren Seite klonen, und wenn jemand aus dem Backend dann auf die URL klickt, zack, Identitätsdiebstahl perfekt. Und natürlich gäbe es ja dann auch die Möglichkeit mit dem Update-Mechanismus…

Aber darum geht es in diesem Falle gar nicht.
Wird besser.

Aus aktuellem Anlass muß ich leider Code auditieren, und das ist immer kostenintensiv weil kostet Zeit. MEINE Zeit.
Wenn man dann aber ein Plugin hat, bei dem einen schon in der zweiten Datei das Grausen kommt, dann auditiert man ungern weiter. Man weiß ja, kann nur besser werden (und wurde es dann auch).

Nun gut, präventiv auf wordpress.org einen entsprechenden Kommentar dagelassen. Zugegeben, nicht freundlich. Ich habe aber Wichtigeres zu tun als Stümpern in Kuschelsprache zu erklären wie grundlegend sie verkacken.

Die Antwort läßt nicht lange auf sich warten, und daher auch diese als Screenshot hier.

Tja, dann machen wir doch mal einen offiziellen CVE draus, zumindest für den einen so offensichtlichen Dreck den man da programmiert hat. Vielleicht auch gleich ein Exploit, dann ist auch der Update-Druck da… (hier noch das auditierte Plugin in der Version 1.1.9.2, zuletzt vor 2 Jahren aktualisiert)
Eigentlich sollte ich noch weiter reviewen, da die ja auch bei einem anderen WordPress-Plugin mit involviert waren.

Und dreimal darf man raten, ob diese Web-Bastler-Klitsche ein gültiges Impressum hat? Da könnten sich deren Mitbewerber schon gütlich tun…
(Screener)

EINMAL MIT PROFIS ARBEITEN…

Nachtrag 13.12.2022:
abandoned plugin

Macht natürlich keinen Unterschied, außer das es jetzt wohl keinen CVE gibt… aber mal sehen. Ist natürlich nicht so, das von dort keine anderen Meisterleistungen gekommen sind, respektive die nicht noch woanders mitentwickelt haben. Vielleicht auditiere ich dort dann mal in einer ruhigen Minute weiter… 😉
Schließlich soll das hier ja nicht leer bleiben…


KAS:ST

Abgelegt unter Music, Nightshift, Youtube inside am 04.11.2022


blog powered by wordpress
Design by Office and IT - Business Solutions
Optimiert durch suchmaschinen-freundlich