Hello,
On Wed, Oct 18, 2023 at 11:31:30AM -0700, Jerry Scharf (he/him/his) wrote:
> We use haproxy for https termination for one of our services. We are trying
> to upgrade to late model haproxy, but have run into a problem. In old
> haproxy versions, it allowed 1k header names and we told our customers
> that.
Ouch! The joys of announcing technical limits to customers instead of
acceptable ones :-/
> In modern versions, it is checked and limited to 254.
Possibly, I would have said something between 64 and 255.
> I saw that this check was in response to a CVE. If I understand the issue,
> it was that it was only 255 that produced the problem, not all lengths
> beyond 255. Is this a correct assessment?
I don't have any such memories, if you had a link to the commit in
question I could possibly confirm based on the info there. But anyway
at such lengths, 254 or 255 are both considered totally unreasonable.
> Are there any ways around this that I haven't found?
No, definitely not at all. From what I'm seeing in the API's doc the
name's length is represented on 8 bits (255 max) and the value length
on 24 bits (16 MB max), and both sizes fit into a combined 32-bit block.
> I will need to take this to the folks that own the product requirements and
> I want to give them the right information.
Got it! You can tell them that this has been in effect since 1.9 (via
an opt-in), 2.0 (via an opt-out) and 2.1 definitive. In short, all
currently maintained versions use the same representation.
Hoping this helps,
Willy