Skip to content

setopt: refuse blobs with zero length - #20705

Closed
bagder wants to merge 1 commit into
masterfrom
bagder/blob-no-len
Closed

bagder wants to merge 1 commit into
masterfrom
bagder/blob-no-len

Conversation

@bagder

@bagder bagder commented Feb 24, 2026

Copy link
Copy Markdown
Member

A blob must have a length or it will not be accepted. By enforcing the check here, TLS backend code can rely on the fact that the length is always non-zero from this point.

Reported-by: aisle-research-bot
URL: #20689 (review)

A blob must have a length or it will not be accepted. By enforcing the
check here, TLS backend code can rely on the fact that the length is
always non-zero from this point.

Reported-by: aisle-research-bot
URL: #20689 (review)
@bagder

bagder commented Feb 24, 2026

Copy link
Copy Markdown
Member Author

@aisle-analyzer

@aisle-research-bot

aisle-research-bot Bot commented Feb 24, 2026 •

Copy link
Copy Markdown

🔒 Aisle Security Analysis

✅ We scanned this PR and did not find any security vulnerabilities.

Aisle supplements but does not replace security review.


Analyzed PR: #20705 at commit a61c812

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds validation to reject blobs with zero length in the Curl_setblobopt function. This prevents out-of-bounds memory access in TLS backend code (specifically mbedTLS) where code accesses blob->data[blob->len - 1] to check for null termination, which would cause undefined behavior if len is 0.

Changes:

  • Add zero-length validation check in Curl_setblobopt() to reject blobs with len equal to 0

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@bagder bagder closed this in 956e1ae Feb 24, 2026
@bagder
bagder deleted the bagder/blob-no-len branch February 24, 2026 10:18
vszakats added a commit to vszakats/curl that referenced this pull request May 16, 2026
Prior to this patch the test was always skipped due to failing precheck
with `CURLE_BAD_FUNCTION_ARGUMENT`, because of the zero-length blob
passed to setopt. Fix by passing a non-zero long dummy blob as in
`mk-lib1521.pl`.

Follow-up to 956e1ae curl#20705
vszakats added a commit that referenced this pull request May 16, 2026
Prior to this patch the test was always skipped due to failing precheck
with `CURLE_BAD_FUNCTION_ARGUMENT`, because of the zero-length blob
passed to setopt. Fix by passing a non-zero long dummy blob as done in
`mk-lib1521.pl`.

Fixing:
```
test 0678 SKIPPED: CURLOPT_CAINFO_BLOB is not supported
```

Follow-up to 956e1ae #20705

Closes #21641
outcast36 pushed a commit to greearb/curl that referenced this pull request Jun 3, 2026
A blob must have a length or it will not be accepted. By enforcing the
check here, TLS backend code can rely on the fact that the length is
always non-zero from this point.

Reported-by: aisle-research-bot
URL: curl#20689 (review)
Closes curl#20705
outcast36 pushed a commit to greearb/curl that referenced this pull request Jun 3, 2026
Prior to this patch the test was always skipped due to failing precheck
with `CURLE_BAD_FUNCTION_ARGUMENT`, because of the zero-length blob
passed to setopt. Fix by passing a non-zero long dummy blob as done in
`mk-lib1521.pl`.

Fixing:
```
test 0678 SKIPPED: CURLOPT_CAINFO_BLOB is not supported
```

Follow-up to 956e1ae curl#20705

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

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants