• [^] # Re: PostgreSQL 8.0.3

    Posté par (site web personnel) . En réponse au journal Version de maintenance de postgreSQL. Évalué à 3.

    Bien vu.
    En production on peut éventuellement se passer du Dump/Restore en exécutant les instructions suivantes en superuser:

    UPDATE pg_proc SET proacl = '{=}'
    WHERE pronamespace = 11 AND pronargs = 5
    AND proargtypes[2] = 'cstring'::regtype;


    Pour chacune des bases de données y compris template1 et template0. Pour modifier cette dernière qui est normalement verouillée pour les connections, il faut au préalable la rendre dispo avec:

    UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';

    Puis exécuter la requête plus haut et ne pas oublier de verrouiller à nouveau la base ensuite avec un petit VACUUM auparavant:

    VACUUM FREEZE;
    UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';


    La seconde vulnérabilité concerne le module tsearch2 et peut elle aussi être corrigée sans Dump/Restore:

    UPDATE pg_proc SET proargtypes[0] = 'internal'::regtype
    WHERE oid IN (
    'dex_init(text)'::regprocedure,
    'snb_en_init(text)'::regprocedure,
    'snb_ru_init(text)'::regprocedure,
    'spell_init(text)'::regprocedure,
    'syn_init(text)'::regprocedure);


    Voilà, tout ceci pour dire qu'il n'est même pas nécessaire d'interrompre la production pour corriger ces deux petites vulnérabilités.