oss-sec mailing list archives

Re: CVE-2024-28085: Escape sequence injection in util-linux wall


From: Jakub Wilk <jwilk () jwilk net>
Date: Wed, 27 Mar 2024 22:30:41 +0100

While looking through upstream git for a fix for this¹, I stumbled upon another write(1)/wall(1) control character injection vulnerability, introduced last year in util-linux v2.39.

The offending commits are:

* https://github.com/util-linux/util-linux/commit/8a7b8456d1dc0e7c
  ("write: correctly handle wide characters")
* https://github.com/util-linux/util-linux/commit/aa13246a1bf1be9e
  ("wall: use fputs_careful()")

The added comment says:

The locale of the recipient is nominally unknown,
but it's a solid bet that the encoding is compatible with the author's.

Alas the bet is not that solid when writer's locale encoding is controlled by an attacker.

We can exploit this against terminal emulators that recognize C1 control characters, such as Linux VTs or screen(1):

   $ printf '\302\23331mMOO\302\2330m\n' | LC_ALL=kk_KZ wall

I don't see any good way to fix this on the util-linux's side. It should be fixed on the terminal emulators' side by disabling C1 support.


¹ https://github.com/util-linux/util-linux/commit/404b0781f52f7c04
  ("wall: fix escape sequence Injection [CVE-2024-28085]")

--
Jakub Wilk


Current thread: