bug-global
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Security vulnerability in htags


From: Shigio YAMAGUCHI
Subject: Re: Security vulnerability in htags
Date: Wed, 8 May 2024 16:44:17 +0900

Hi,
I confirmed the security vulnerability and fixed it.
The result of executing the modified command is as follows:

$ rm -f /tmp/w
$ htags --suggest2 -d '&& id'
gtags: directory '/tmp/global/htags/&& id' not found.
htags: cannot execute gtags(1) command.
$ cat /tmp/w
cat: /tmp/w: No such file or directory
$ htags --suggest2 -d '$(pwd>/tmp/w)'
gtags: directory '/tmp/global/htags/$(pwd>' not found.
htags: cannot execute gtags(1) command.
$ cat /tmp/w
cat: /tmp/w: No such file or directory

I have attached the patch to this mail.
Thank you for the report.

Regards,
Shigio

On Wed, May 8, 2024 at 6:10 AM u32i <u32i@proton.me> wrote:
>
> Hi,
>
> I found a security vulnerability in htags. htags takes the input provided in 
> the dbpath option (-d) and appends it to a command string that will later be 
> executed by system() function, without any escaping, leading to a command 
> injection vulnerability.
>
> Vulnerable code: src/htags/htags.c:L1336
>
> Reproduce:
>
> Run htags by injecting a command in the dbpath argument (-d) :
>
>      $ htags --suggest2 -d '&& id'
>      // SNIP
>       uid=1000(user1) gid=1000(user1) 
> groups=1000(user1),24(cdrom),25(floppy),27(sudo)
>       htags: GPATH, GTAGS and/or GRTAGS not found. Please reexecute htags 
> with the -g option.
>
>            $ htags --suggest2 -d '$(pwd>/tmp/w)'
>      $ cat /tmp/w
>      /home/user1/tests
>
> Environment:
>
> Tested in Debian 12, htags version 6.6.12
>
> Mitigation:
>
> Options added to or used in system commands should be validated and escaped 
> before used.
>
> Best Regards
>


-- 
Shigio YAMAGUCHI <shigio@gnu.org>
PGP fingerprint:
26F6 31B4 3D62 4A92 7E6F  1C33 969C 3BE3 89DD A6EB

Attachment: htags.diff
Description: Binary data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]