Bug 1070356 - openswan breaks NAT-T draft clients (and possibly ike fragmentation)
openswan breaks NAT-T draft clients (and possibly ike fragmentation)
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: openswan (Show other bugs)
Unspecified Unspecified
urgent Severity high
: rc
: ---
Assigned To: Paul Wouters
Aleš Mareček
: OtherQA, Regression, ZStream
: 1072922 (view as bug list)
Depends On:
Blocks: 1070358 1090273
  Show dependency treegraph
Reported: 2014-02-26 11:35 EST by Paul Wouters
Modified: 2014-10-14 04:19 EDT (History)
8 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1070358 (view as bug list)
Last Closed: 2014-10-14 04:19:19 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
patch for NAT-T draft payloads (6.22 KB, patch)
2014-02-26 11:35 EST, Paul Wouters
no flags Details | Diff

External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2014:1588 normal SHIPPED_LIVE openswan bug fix and enhancement update 2014-10-13 21:39:53 EDT

  None (edit)
Description Paul Wouters 2014-02-26 11:35:52 EST
Created attachment 868101 [details]
patch for NAT-T draft payloads

Description of problem:

When a client supporting only non-RFC versions of NAT-T connect to openswan, the connection is rejected with:

 ***parse ISAKMP Key Exchange Payload:
|    next payload type: ISAKMP_NEXT_NONCE
|    length: 260
| got payload 0x400(ISAKMP_NEXT_NONCE) needed: 0x400 opt: 0x102080
"any--east-l2tp"[1] #1: next payload type of ISAKMP Nonce Payload has an unknown value: 130
"any--east-l2tp"[1] #1: malformed payload in packet
| payload malformed after IV
"any--east-l2tp"[1] #1: sending notification PAYLOAD_MALFORMED to

Version-Release number of selected component (if applicable):

This can be tested most easily using Windows XP, as it does not support the NAT-T in RFC version, only draft version 2.

the cause is due to bug introduced while backporting the CVE fix for libreswan to openswan. A change in the payload_names struct accidentally left out the private use payload names (which include the two draft NAT-T payloads and the IKE fragmentation payload)

Patch attached to this bug,
Comment 4 Paul Wouters 2014-04-09 10:41:24 EDT
For this scenario, you need a setup that has an "old" client behind NAT to openswan as a server.

We have added an option ikev1_natt={bofh|rfc|draft} to libreswan that can suppress sending the RFC value, so that newer clients also fall into the older code that is broken in the latest openswan build, but this option hasn't made it into a release yet. I can make a patch that would apply to openswan so you can build it and configure it so that it does not understand the rfc but only the draft.

Otherwise, the easiest way to test this now is to use a Windows XP VM, as it does not support the RFC method, only the draft method.

I don't know how this customer is but Matt Rogers should know.
Comment 7 Karel Srot 2014-04-19 06:59:21 EDT
Hi Paul,
is this a duplicate to bug 1070356? If yes, could you please close this one?
Comment 8 Paul Wouters 2014-04-19 12:09:40 EDT
(In reply to Karel Srot from comment #7)
> Hi Paul,
> is this a duplicate to bug 1070356? If yes, could you please close this one?

uhm, you are asking if 1070356 is a duplicate of 1070356 ?

I'm a software engineer, not a philosopher :)
Comment 9 Paul Wouters 2014-04-22 20:46:26 EDT
note that bz#1072922 is a duplicate of this bug
Comment 10 Paul Wouters 2014-04-22 21:04:49 EDT
*** Bug 1072922 has been marked as a duplicate of this bug. ***
Comment 17 errata-xmlrpc 2014-10-14 04:19:19 EDT
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.


Note You need to log in before you can comment on or make changes to this bug.