Kwetsbaarheden met hoge prioriteit gepatcht in Uncode Core Plugin

beheerder

Invoering

Op 7 mei 2024 publiceerde WP-Firewall, een toonaangevende beveiligingsadviesorganisatie, een gedetailleerd rapport over kritieke kwetsbaarheden die zijn ontdekt in de Uncode Core-plug-in. Als u een Uncode-gebruiker bent, is het cruciaal om uw core-plug-in bij te werken naar ten minste versie 2.8.9 om uw WordPress-site te beschermen tegen potentiële aanvallen. Dit bericht gaat dieper in op de details van deze kwetsbaarheden, hun implicaties en de stappen die zijn genomen om ze te beperken.

Over de Uncode Core-plug-in

De Uncode Core plugin, ontwikkeld door Undsgn, is een essentieel onderdeel van het Uncode thema—een zeer populair premium thema voor WooCommerce sites, met meer dan 110.000 verkopen op ThemeForest. Het Uncode thema staat bekend om zijn pixel-perfecte design, waardoor het ideaal is voor verschillende websites, waaronder portfolio's, bureaus, freelancers, blogs en online winkels.

De beveiligingslekken

De beveiligingsonderzoekers van WP-Firewall hebben twee belangrijke kwetsbaarheden in de Uncode Core-plug-in geïdentificeerd:

1. Geverifieerde willekeurige verwijdering van bestanden en mappen

Beschrijving: Deze kwetsbaarheid staat elke geauthenticeerde gebruiker met ten minste een Subscriber-rol toe om willekeurige mappen op de server te verwijderen. Het probleem ligt in de functie `delete_download`, die de juiste machtigingen en nonce-controles mist. Deze functie is gekoppeld aan de actie `wp_ajax_uncodefont_delete_download`, waardoor geauthenticeerde gebruikers deze kunnen misbruiken.

Technische details:

functie delete_download() {
als (isset($_REQUEST['font_family'])) {
$font_family = $_REQUEST['font_family'];
$font_dir = trailingslashit($this->font_directory).$font_family;
$fontkit_zip = $font_dir.'.zip';

als (@file_exists($fontkit_zip)) {
als (!@unlink($fontkit_zip)) {
echo json_encode(array(
'error' => sprintf( esc_html__( 'Kan @fontface kit zip %1$s niet verwijderen.', 'uncode-core' ), $fontkit_zip )
));
sterven();
}
}

// Kan de directory niet verwijderen, omdat unzip_file, die het heeft gemaakt, WP_Filesystem gebruikt. Dus gebruiken we WP_Filesystem om het te verwijderen.
$this->setup_wp_filesystem();

globaal $wp_bestandssysteem;
als (isset($wp_bestandssysteem)) {
$delete_dir = $wp_filesystem->delete($font_dir, true);
als (!$delete_dir) {
echo json_encode(array('fout' => $delete_dir['fout']));
sterven();
}
}

echo json_encode(array('success' => "Download verwijderd"));
}
sterven();
}
bevat/font-system/font-system.php, functie delete_download()

De functie construeert de variabele `$font_dir` uit gebruikersinvoer (`$_REQUEST['font_family']`) zonder opschoning, waardoor directory-doorkruising en willekeurige verwijdering mogelijk is.

2. Geverifieerde privilege-escalatie

Beschrijving: Deze kwetsbaarheid stelt elke geauthenticeerde gebruiker met minimaal de rol Subscriber in staat om zijn of haar privileges te verhogen naar elke rol op de WordPress-site. Dit komt door een onveilige WP Option-update in de functie `save_option`, die geen goede toestemmingscontroles heeft.

Technische details:

openbare functie save_option() {
als ( isset( $_POST['nonce'] ) && wp_verify_nonce( $_POST['nonce'], 'uncode-core-settings-nonce' ) ) {
als ( isset( $_POST['waarde'] ) && $_POST['waarde'] && isset( $_POST['optie_id'] ) && $_POST['optie_id'] ) {
$autoload = isset( $_POST['autoload'] ) && $_POST['autoload'] === 'true' ? true : false;
update_option( $_POST['optie_id'], $_POST['waarde'], $autoload );
---------- HIER KNIPPEN ----------
includes/core-settings/class-core-settings.php, functie save_option()

De nonce die in deze functie wordt gebruikt, kan worden opgehaald door elke geauthenticeerde gebruiker met toegang tot het wp-admin-gebied, waardoor ongeautoriseerde updates van opties en privilege-escalatie mogelijk zijn.

De patch

Om deze kwetsbaarheden te verhelpen, hebben de ontwikkelaars van de Uncode Core-plug-in versie 2.8.9 uitgebracht. Deze versie bevat de volgende oplossingen:

Geverifieerde willekeurige verwijdering van bestanden en mappen: Machtigingen en nonce-controles geïmplementeerd in de functie `delete_download`.

Geverifieerde privilege-escalatie: Toegepaste machtigings- en nonce-controles in de functie `save_option` en een whitelistcontrole voor optietoetsen toegevoegd.

Conclusie

Om de veiligheid van uw WordPress-site te waarborgen, moet u op de hoogte blijven van de nieuwste patches en beveiligingsadviezen. De kwetsbaarheden in de Uncode Core-plug-in benadrukken het belang van het implementeren van de juiste toestemmings- en nonce-controles voor gevoelige acties. Sanitiseer altijd gebruikersinvoer en beperk de reikwijdte van wat kan worden bijgewerkt of verwijderd via gebruikersacties.

Voor meer gedetailleerde informatie kunt u het volledige beveiligingsadvies op de website van WP-Firewall lezen hier.

Blijf veilig

WP-Firewall biedt verschillende oplossingen voor WordPress-beveiliging, waaronder plugin-audits, kwetsbaarheidsbewaking en -respons en beheerde WordPress-beveiligingsservices. Als u een plugin-ontwikkelaar of beveiligingsonderzoeker bent, overweeg dan om lid te worden van WP-Firewall.


wordpress security update banner

Ontvang WP Security Weekly gratis 👋
Meld je nu aan
!!

Meld u aan en ontvang wekelijks de WordPress-beveiligingsupdate in uw inbox.

Wij spammen niet! Lees onze privacybeleid voor meer informatie.