On 27/02/2025 06:45, Alan Coopersmith wrote:

** Fix shell injection vulnerability in man.el (CVE-2025-1244).
We urge all users to upgrade immediately.

This was reported in https://debbugs.gnu.org/cgi/bugreport.cgi?bug=66390

Reading <https://bugzilla.redhat.com/show_bug.cgi?id=2345150> I have realized that org-link was not the only package that did not follow (from #66390):
"'man' is an interactive command, so it should not
second-guess the user who invokes it.  Commands that call 'man'
non-interactively should make sure they call 'man' with a valid
argument, especially when the argument comes from some file."
Fortunately, finally it was fixed in man.el, so other callers are not affected any more as well.

CVE-2024-53920 is further described in
https://eshelyaron.com/posts/2024-11-27-emacs-aritrary-code-execution- and-how-to-avoid-it.html
[...]
- Avoid visiting untrusted .el files in Emacs

Do not open *any* file that you do not trust. The issue is not specific to files having .el suffix. In default configuration emacs-lisp mode may be forced by specifying file-local variables inside a file.

- Disable automatic error checking (with Flymake or Flycheck) in untrusted .el files

Disabling flymake may be tricky. File-local variables allow to force it (in default configuration).

- Disable auto-completion features in untrusted .el files
- UPDATE: Also set enable-local-eval to nil

It should work, however it is rather drastic measure that may cause inconvenience.

It is funny that a similar suggestion was published in the previous century.

Simson Garfinkel, Gene Spafford. Practical UNIX & Internet Security. 1996. Chapter 11 Protecting Against Programmed Threats:
Another possible source of initialization errors comes into play
when you edit files that have embedded edit commands. Both vi/ex
and Emacs allow you to embed editor commands within text files so
they are automatically executed whenever you edit the file. For
this to work, they must be located in the first few or last few
lines of the file.

To disable this feature in Emacs, place one of these lines in your .emacs file:
    (setq inhibit-local-variables t) ; emacs version 18
or:
    (setq enable-local-variables "ask") ; emacs verison 19 and above

The following bugs have not marked as fixed for some reason, but from my point of view, original reports prominently highlight risk of CVE-2024-53920.

- <https://debbugs.gnu.org/37656> Tue, 8 Oct 2019 08:49:02 UTC
  Arbitrary code execution with special `mode:'
- <https://debbugs.gnu.org/32495> Wed, 22 Aug 2018 00:13:02 UTC
  Arbitrary code execution when completing inside untrusted elisp code

Reply via email to