Security
Headlines
HeadlinesLatestCVEs

Headline

CVE-2019-16391: spip

SPIP before 3.1.11 and 3.2 before 3.2.5 allows authenticated visitors to modify any published content and execute other modifications in the database. This is related to ecrire/inc/meta.php and ecrire/inc/securiser_action.php.

CVE
#sql#php#auth

4 changed files with 41 additions and 27 deletions

  1. 2

    ecrire/inc/meta.php

  2. 18

    ecrire/inc/securiser_action.php

  3. 16

    ecrire/inc/utils.php

  4. 32

    ecrire/index.php

@ -32,7 +32,7 @@ function inc_meta_dist($table = ‘meta’) {

// en cas d'install ne pas faire confiance au meta_cache eventuel

$cache = cache_meta($table);

if ((_request('exec') !== 'install' or !test_espace_prive())

if ((!$exec = _request('exec') or !autoriser_sans_cookie($exec))

    and $new = jeune_fichier($cache, _META_CACHE_TIME)

    and lire_fichier_securise($cache, $meta)

    and $meta = @unserialize($meta)

@ -184,14 +184,16 @@ function caracteriser_auteur($id_auteur = null) {

function _action_auteur($action, $id_auteur, $pass, $alea) {

static $sha = array();

if (!isset($sha[$id_auteur . $pass . $alea])) {

    if (!isset($GLOBALS['meta'][$alea]) and _request('exec') !== 'install') {

        include_spip('inc/acces');

        charger_aleas();

        if (empty($GLOBALS['meta'][$alea])) {

            include_spip('inc/minipres');

            echo minipres();

            spip_log("$alea indisponible");

            exit;

    if (!isset($GLOBALS['meta'][$alea])) {

        if (!$exec = _request('exec') or !autoriser_sans_cookie($exec)){

            include_spip('inc/acces');

            charger_aleas();

            if (empty($GLOBALS['meta'][$alea])){

                include_spip('inc/minipres');

                echo minipres();

                spip_log("$alea indisponible");

                exit;

            }

        }

    }

    include_spip('auth/sha256.inc');

@ -1644,14 +1644,24 @@ function find_all_in_path($dir, $pattern, $recurs = false) {

/**

  • Prédicat sur les scripts de ecrire qui n’authentifient pas par cookie

  • et beneficient d’une exception

  • @param string $nom

  • @param bool $strict

  • @return bool

*/

function autoriser_sans_cookie($nom) {

function autoriser_sans_cookie($nom, $strict = false) {

static $autsanscookie = array('install', 'base_repair');

$nom = preg_replace('/.php[3]?$/', '', basename($nom));

return in_array($nom, $autsanscookie);

if (in_array($nom, $autsanscookie)) {

    if (test_espace_prive()){

        include_spip('base/connect_sql');

        if (!$strict or !spip_connect()){

            return true;

        }

    }

}

return false;

}

/**

@ -41,7 +41,7 @@ $reinstall = (!is_null(_request(‘reinstall’))) ? _request(‘reinstall’) : ($exec

// Les scripts d’insallation n’authentifient pas, forcement,

// alors il faut blinder les variables d’URL

//

if (autoriser_sans_cookie($exec)) {

if (autoriser_sans_cookie($exec, false)) {

if (!isset($reinstall)) {

    $reinstall = 'non';

}

@ -64,20 +64,22 @@ $forcer_lang = true;

if (_request(‘action’) or _request(‘var_ajax’) or _request(‘formulaire_action’)) {

// Charger l'aiguilleur qui va mettre sur la bonne voie les traitements derogatoires

include_spip('public/aiguiller');

if (

    // cas des appels actions ?action=xxx

    traiter_appels_actions()

    or

    // cas des hits ajax sur les inclusions ajax

    traiter_appels_inclusions_ajax()

    or

    // cas des formulaires charger/verifier/traiter

    traiter_formulaires_dynamiques()

) {

    exit;

} // le hit est fini !

if (!autoriser_sans_cookie($exec)){

    // Charger l'aiguilleur qui va mettre sur la bonne voie les traitements derogatoires

    include_spip('public/aiguiller');

    if (

        // cas des appels actions ?action=xxx

        traiter_appels_actions()

        or

        // cas des hits ajax sur les inclusions ajax

        traiter_appels_inclusions_ajax()

        or

        // cas des formulaires charger/verifier/traiter

        traiter_formulaires_dynamiques()

    ){

        exit;

    } // le hit est fini !

}

}

// securiser les redirect du back-office

if (_request(‘redirect’)) {

CVE: Latest News

CVE-2023-50976: Transactions API Authorization by oleiman · Pull Request #14969 · redpanda-data/redpanda
CVE-2023-6905
CVE-2023-6903
CVE-2023-6904
CVE-2023-3907