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.
[^] # Re: PostgreSQL 8.0.3
Posté par Raoul Volfoni (site web personnel) . En réponse au journal Version de maintenance de postgreSQL. Évalué à 3.
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.