Visitar URL original
Image-to-image parsing passes unvalidated url values to _url_to_data_url · Issue #8886 · apache/texera · GitHub
Skip to content

Image-to-image parsing passes unvalidated url values to _url_to_data_url #8886

Description

@PG1204

What happened?

ImageTaskCodegen.parsePython's image-to-image branch hands provider-supplied values to _url_to_data_url without checking their type, and indexes images without checking it is a list. Verified by running the generated parser:

Response body Result
{"images": [{"url": null}]} _url_to_data_url called with None
{"images": [{"url": 7}]} _url_to_data_url called with an int
{"images": {"a": 1}} raises KeyError
{"data": [{"url": null}]} _url_to_data_url called with None

Three gaps:

  1. images[0]["url"] is unvalidated (lines 137-138). A non-string reaches _fetch_remote_url and urlparse.
  2. images is indexed without an isinstance(images, list) check (line 137). A dict body raises KeyError, which _parse_response catches, so it degrades by exception rather than cleanly.
  3. data[0]["url"] is unvalidated (lines 148-149), the same gap as 1.

The inconsistency is the clearest sign this is unintended: the output branch at line 133 and the outputs branch below it both already guard with isinstance(url, str) and url.startswith("http"). The images and data branches in the same function do not.

These do not abort the run and _parse_response catches KeyError, IndexError and TypeError, and the row loop catches the rest per row, so the effect is a wasted fetch attempt or a cell holding the raw body instead of an image.

This is the remainder of the same defect class as #8869 and #8870. #8885 was deliberately scoped to b64_json only, leaving these for a separate change.

How to reproduce?

Run the operator with image-to-image against a provider that returns a 200 whose images[0].url or data[0].url is null or numeric, or whose images is an object rather than an array.

Version/Branch

1.4.0-incubating-SNAPSHOT (main)

Commit Hash (Optional)

No response

What browsers are you seeing the problem on?

No response

Relevant log output

Activity

  1. added theissue type on Oct 6, 2026
  2. PG1204 commented on Oct 6, 2026

    @PG1204
    ContributorAuthor

    /take

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions