threads / discuss / 31492

Confirm my false error suspicions of Gitweb query injection

Subject: Confirm my false error suspicions of Gitweb query injection

## tl;dr

4 messages between Sep 10, 2012 and Sep 10, 2012.

replies: 3people: 3as markdown or json

Joseph Leong· Sep 10, 2012, 16:45 UTC · lore
Hi Everyone,
I'm using Gitweb (Based on Git 1.7.9 on RHEL 5.8).

I was poking around and tried a GET Request (REQ) with some SQL statements as a search query and noticed a 500. Can i just confirm with anyone here that the error message I'm seeing in the Response (RESP) is basically saying that the search parameters are invalid because of it's funny chars are breaking the regex search and that it's not anything database related. Thank you!

[REQ] GET /git/?s=%28select+1234%2C HTTP/1.0

[RESP] 500 - Internal Server Error Unmatched ( in regex; marked by <-- HERE in m/( <-- HERE select 1234,/ at /var/www/git/gitweb.cgi line 4845.

[Code at gitweb.cgi line 4845] next if $searchtext and not $pr->{'path'} =~ /$searchtext/ and not $pr->{'descr_long'} =~ /$searchtext/;

Matthieu Moy· Sep 10, 2012, 17:15 UTC · re: Joseph Leong · lore

Re: Confirm my false error suspicions of Gitweb query injection

Joseph Leong <josephcleong@gmail.com> writes:
> [RESP]
> 500 - Internal Server Error
> Unmatched ( in regex; marked by &lt;-- HERE in m/( &lt;-- HERE select
> 1234,/ at /var/www/git/gitweb.cgi line 4845.

Gitweb is feeding your input as a perl regex, which is not really clean but shouldn't really harm either.

I could reproduce with an old gitweb version, but newer gitwebs seem to be more clever about regular expression (there's an explicit tickbox to search for re, and the error message is clean when what you provide isn't a valid regexp).

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/
Junio C Hamano· Sep 10, 2012, 17:37 UTC · re: Joseph Leong · lore

Re: Confirm my false error suspicions of Gitweb query injection

Joseph Leong <josephcleong@gmail.com> writes:
Show 10 quoted lines
> Hi Everyone,
>
> I'm using Gitweb (Based on Git 1.7.9 on RHEL 5.8).
>
> I was poking around and tried a GET Request (REQ) with some SQL
> statements as a search query and noticed a 500. Can i just confirm
> with anyone here that the error message I'm seeing in the Response
> (RESP) is basically saying that the search parameters are invalid
> because of it's funny chars are breaking the regex search and that
> it's not anything database related.

Yes, I think this was fixed in v1.7.9.4 if not earlier, with e65ceb6 (gitweb: Fix fixed string (non-regexp) project search, 2012-03-02).

Joseph Leong· Sep 10, 2012, 17:41 UTC · re: Junio C Hamano · lore

Re: Confirm my false error suspicions of Gitweb query injection

and you earned bonus points for the details - thank you very much!
On Mon, Sep 10, 2012 at 10:37 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 16 quoted lines
> Joseph Leong <josephcleong@gmail.com> writes:
>
>> Hi Everyone,
>>
>> I'm using Gitweb (Based on Git 1.7.9 on RHEL 5.8).
>>
>> I was poking around and tried a GET Request (REQ) with some SQL
>> statements as a search query and noticed a 500. Can i just confirm
>> with anyone here that the error message I'm seeing in the Response
>> (RESP) is basically saying that the search parameters are invalid
>> because of it's funny chars are breaking the regex search and that
>> it's not anything database related.
>
> Yes, I think this was fixed in v1.7.9.4 if not earlier, with e65ceb6
> (gitweb: Fix fixed string (non-regexp) project search, 2012-03-02).
>

← back to recent threads