Skip to content

sleep injection fails on NOT EXISTS queries #17

@valhallasw

Description

@valhallasw

Example: https://quarry.wmflabs.org/query/52344

SELECT page_namespace, page_title, il_to
	FROM imagelinks
	JOIN page on page_id = il_from
	WHERE
		NOT EXISTS (SELECT * FROM image WHERE img_name = il_to)
   	AND NOT EXISTS (SELECT * FROM commonswiki_p.image WHERE img_name = il_to)
		AND NOT EXISTS (SELECT * FROM page WHERE page_namespace = 6
					AND page_title = il_to)
		AND NOT EXISTS (SELECT * FROM commonswiki_p.page WHERE page_namespace = 6
					AND page_title = il_to)
	ORDER BY page_namespace ASC LIMIT 1000

or, a more minimal example,

SELECT page_namespace, page_title, il_to
	FROM imagelinks
	JOIN page on page_id = il_from
	WHERE
		NOT EXISTS (SELECT * FROM image WHERE img_name = il_to)
	ORDER BY page_namespace ASC LIMIT 1000

The sleep seems to be injected into the subquery rather than the main query, and this seems to break the syntax.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions