[Aptitude-devel] Bug#792601: aptitude: newline in user tags breaks pkgstates file
Manuel A. Fernandez Montecelo
manuel.montezelo at gmail.com
Thu Dec 3 01:01:12 UTC 2015
Control: tags -1 + pending
Control: severity -1 important
Hi,
2015-07-16 15:39 Badalisc:
>Package: aptitude
>Version: 0.6.11-1+b1
>Severity: normal
>
>Dear Maintainer,
>
>I know that whitespaces other than space itself are very unlikely to
>be used in user tags, but aptitude silently accepts any of them even
>though they are not handled correctly.
>
>With newlines you can do a little injection:
>
># aptitude search '^coreutils$'
>i coreutils - GNU core utilities
># aptitude add-user-tag $'\nState:3' coreutils
># aptitude search '^coreutils$'
>id coreutils - GNU core utilities
> (now it is marked for removal)
>
>Or you can make aptitude unusable:
>
># aptitude add-user-tag $'foo bar\n' coreutils
># aptitude install bash
>[ ERR] Reading extended state information
>[ ERR] Initializing package states
>[ ERR] Initializing package states
>E: Unterminated '"' in the user-tags list of the package coreutils.
>[ ERR] Reading extended state information
>[ ERR] Initializing package states
>[ ERR] Initializing package states
>E: Unterminated '"' in the user-tags list of the package coreutils.
>
>Also, other whitespaces like tab are treated differently from normal spaces:
>
># aptitude add-user-tag 'foo bar' coreutils
> (adds the single tag 'foo bar')
># aptitude remove-user-tag 'foo bar' coreutils
> (removes it)
>
># aptitude add-user-tag $'foo\tbar' coreutils
> (adds two tags, 'foo' and 'bar')
># aptitude remove-user-tag $'foo\hbar' coreutils
> (no effect)
># aptitude remove-user-tag bar coreutils
> (now only 'foo' is left)
>
>Given pkgstates' email header-like format and the csv-like format for
>the subfields, perhaps the sensible solution for the newline problem
>would be to just forbid newline in tags.
>
>About the other problem, I noticed that tags not containing at least
>one space (x20), double quote or backslash are never written in quoted
>form, but if they contain other whitespaces they probably should.
>(an empty string as a tag name is also accepted and written unquoted
>which has no effect)
Thanks for the report and the analysis.
I am fixing this by forbidding to use non-graphic characters (so,
excluding control and spaces). I think that it's a reasonable
requirement for "tags".
Marking as +pending, will be present in the next release.
Cheers.
--
Manuel A. Fernandez Montecelo <manuel.montezelo at gmail.com>
More information about the Aptitude-devel
mailing list