Opened 6 weeks ago

Closed 6 weeks ago

#23837 closed enhancement (fixed)

fetchmail-6.6.7

Reported by: Bruce Dubbs Owned by: Joe Locash
Priority: normal Milestone: 13.1
Component: BOOK Version: git
Severity: normal Keywords:
Cc:

Description

New point version.

Change History (3)

comment:1 by Joe Locash, 6 weeks ago

Owner: changed from blfs-book to Joe Locash
Status: new → assigned

comment:2 by Joe Locash, 6 weeks ago

Milestone: 13.2 → 13.1

comment:3 by Joe Locash, 6 weeks ago

Resolution: → fixed
Status: assigned → closed
fetchmail-6.6.7 (released 2026-08-29, 31229 LoC):

## BUGFIXES:
* Safeguard internal NTLM buffer handling to avoid overrun if server
  sends extremely long fields in the challenge, to avoid stack corruption.
  Reported by "Tristan".

  The code will report the buffer sizing issue and abort the NTLM authentication
  flow properly so that it's clear that message sizes are the issue.
  Fetchmail 6.6.7 currently supports 1 kByte of NTLM payload for each of the
  three messages, plus header.

  Earlier reports of this bug overestimated the impact.  While the bug
  indeed can write beyond the end of a stack-based buffer, it is reaching
  into another stack-based buffer that is at least 2048 bytes large, whereas
  the overflow is a few dozen bytes at most.  The worst impact is that the
  NegotiateFlags value in the final Authenticate Message step of the NTLM
  authentication protocol gets messed up and the authentication fails.

  It COULD previously happen, depending on hardening, stack protection and 
  other compiler flags that these _protections_ terminated fetchmail because
  one write to a data structure crosses into an other variable that is 
  adjacent, on normal stack layouts that "victim" would be the challenge 
  message, which was already read except for its "flags" value.  The 
  termination can happen, for instance, with the Address Sanitizer feature,
  or other features that separate variables into pages of their own or
  put "canary"/sentinel values between them in the memory layout.

  NOTE: NTLM is based on obsolete cryptographic mechanisms
  and should not be used without TLS or SSL security for the transport.

  NOTE: fetchmail 7 will remove support for NTLM and MSN authentication.
  Microsoft (which owns the specification) generally advises that applications
  should not use NTLM, and is replacing with with Kerberos, see
  [MS-NLMP]: NT LAN Manager (NTLM) Authentication Protocol,
  https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-nlmp/
  See Introduction and Security Considerations for Implements
  (In Version 37.0 of the spec, sections 1 and 5.1 on page 84)

  Since this _was_ initially reported as a stack smashing vulnerability,
  a security announcement fetchmail-SA-2026-01 has been issued to reduce
  the severity of the impact in public reporting.

* The IMAP protocol exchange was made stricter,
  (1) it will validate tagged responses that we received the right
  response to make sure fetchmail and the IMAP server are still in synch,
  (2) it will no longer accept the response words OK, NO, BAD, BYE if
  there is trailing garbage, and will now reject "OKAY" or "NONE", which
  would previously be accepted as aliases for OK or NO.

* For NTLM: Made protocol exchange more robust and make it track errors
  and SASL cancellation better to avoid hangs if NTLM does not work but other
  authentication schemes do or NTLM gets rejected by the server.

* Handling of escape sequences in the rcfile has been bugfixed to handle
  all ISO C escape sequences and handle octal escapes more strictly.

* The AC_LIBOBJ extensions have been moved to a lib/ subdirectory
  in an attempt to fix build issues on Cygwin, see #96 reported by Achim.

## TRANSLATION UPDATES were contributed by these fine people - thank you!

* eo:    Keith Bowes [Esperanto]
* ja:    Takeshi Hamasaki [Japanese]
* ro:    Remus-Gabriel Chelu [Romanian]
* cs:    Petr Pisar [Czech]
* es:    Cristian Othón Martínez Vera [Spanish]
* sv:    Göran Uddeborg [Swedish]
* fr:    Frédéric Marchal [French]
* pl:    Jakub Bogusz [Polish]
* it:    Luca Vercelli [Italian]

(listed in random order)

Fixed at b6431ff199.

Note: See TracTickets for help on using tickets.