"Doble quote lost in space", m'encanten aquestes novel•les de misteri 
col•laboratives.
+1000

Le 20 décembre 2020 13:36:42 GMT+01:00, Eloi <entfe...@gmail.com> a écrit :
>El 20/12/20 a les 12:27, Joan Montané ha escrit:
>>
>>
>> Missatge de Josep Lladonosa <jllad...@gmail.com 
>> <mailto:jllad...@gmail.com>> del dia dg., 20 de des. 2020 a les
>11:56:
>>
>>     Hola,
>>
>>     Sembla que ja està encaminada la solució però volia aportar la
>>     meva opinió:
>>
>>     Per a mi és un "bug" d'aquest script ja que no hauria de suposar
>>     que les dates no tinguin espais si s'han d'usar en nom de fitxer
>>     ja que un nom de fitxer pot contenir-ne, d'espais.
>>
>>     Potser es pot reportar un bug al creador del script i fins i tot
>>     fer una proposta per resoldre'l, "escapant" el nom de fitxer.
>>
>>
>> Efectivament, en el cas particular que ens ocupa hi ha dues coses que
>
>> coincideixen, i fan aparèixer el problema:
>>
>> 1. En algunes llengües, la variable que conté el nom del mes conté un
>
>> espai. És el cas de català si s'usa el format %B per a tots els mesos
>
>> menys abril, agost i octubre.
>> 2. L'script no escapa els possibles espais de les variables i si hi
>ha 
>> espais, aleshores l'script no fa el que se suposa que ha de fer.
>>
>> L'error és a 2 (no es pot assumir alegrement que una variable no té 
>> espais). El problema es podria rodejar usant "%OB" a l'script per a 
>> extraure els noms de mesos (totes les llengües que he mirat retornen 
>> els mesos sense espai), però això segueix sense garantir que les 
>> cadenes no tindran espais, i el problema descrit a 2 podria tornar a 
>> reproduir-se. La solució bona és escapar els espais de les variables,
>
>> amb les cometes dobles.
>>
>> Com diu el Josep, el millor és obrir un bug a automysqlbackup i, 
>> idealment, aportar-hi la solució.
>
>Doncs bé, he fet l'exercici de consultar el codi font de l'script a [1]
>
>i l'he encertat de ple: com es pot veure a la funció shell, definida a 
>partir de la línia 424, tant $1 com $2 no estan degudament protegits.
>
>El fet que un espai en blanc trenqui la creació de còpies de seguretat,
>
>per si sol, entenc que mereix que el bug tingui una severitat major que
>
>normal. Ara bé, que $1 tampoc estigui protegit i el paràmetre 
>correspongui a una dada facilitada per l'usuari, el nom de la base de 
>dades, em fa témer que podria arribar a explotar-se com a
>vulnerabilitat 
>per a la injecció de comandes. Per exemple: una configuració que fes 
>còpia d'una base de dades "foo; dropdb foo" (en el cas de treballar amb
>
>Postgres, on tinc experiència) podria, segons els permisos, destruir la
>
>base de dades, el que ho faria un bug crític [2]. Ara bé, no he 
>comprovat fins a quin punt és explotable, però és quelcom que fa saltar
>
>totes les meves alarmes.
>
>També, com s'apunta correctament, si l'apòstrof no fos tipogràfic i es 
>tractés d'una "cometa simple", causaria error i no completaria el
>backup.
>
>L'altre tema és el d'anomenar els backups en funció del locale, que
>està 
>bé per a humans però és terrible per a gestió automàtica per a
>màquines. 
>Si jo fes anar l'script (i, pel que he vist fins ara, el deixaria de
>fer 
>servir immediatament) obriria dos bug reports: el primer, més greu, amb
>
>el problema d'escapament dels paràmetres de la funció dbdump; i el 
>segon, com a wishlist, per parametritzar si la còpia s'ha d'anomenar de
>
>forma humana (com fins ara) o mecànica (en un format YYYY-MM-DD o 
>similar però respectant l'ordre any-mes-dia i 4-2-2 dígits).
>
>No em sento còmode obrint-los jo per tractar-se d'una eina que no uso, 
>doncs no podria donar respostes a preguntes addicionals del 
>desenvolupador o de l'empaquetador, però puc ajudar a qui l'obri.
>
>[1] 
><https://salsa.debian.org/zigo/automysqlbackup/-/blob/debian/automysqlbackup>
>
>cf. <https://tracker.debian.org/pkg/automysqlbackup>
>
>[2] https://xkcd.com/327/

-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.

Respondre per correu electrònic a