diff options
author | Vladislav Grishenko <themiron@mail.ru> | 2020-06-29 02:32:13 +0500 |
---|---|---|
committer | Vladislav Grishenko <themiron@mail.ru> | 2020-06-29 04:38:42 +0500 |
commit | 0f2c18df473d131ff4c696078923e622e1bb4682 (patch) | |
tree | 523efa084b8d985783f72c08cb949862f822bc95 /accel-pppd/include | |
parent | 7dd9766a72d9ad26f4db09c8a52067d1dd4e777c (diff) | |
download | accel-ppp-0f2c18df473d131ff4c696078923e622e1bb4682.tar.gz accel-ppp-0f2c18df473d131ff4c696078923e622e1bb4682.zip |
sstp: fix MITM w/o SSTP_MSG_CALL_CONNECTED is being sent
3.3.2.1 Negotiation Timer
When establishing the SSTP connection, the SSTP server starts the negotiation timer.
2. After sending the Call Connect Acknowledge message, if the server does not receive a Call
Connected message before the Negotiation timer expires then it MUST send a Call Abort message
and start the process of bringing down (disconnecting) the connection. The server MAY implement
different timer values for the Call Connected message and the Call Connect Request message.
3.3.7.1 Server-Side Interface with PPP
When the server receives a PPP data frame from the PPP layer, the server MUST perform the
following steps:
* If CurrentState is set to Server_Call_Connected: Generate an SSTP data
packet (section 2.2.3) with the PPP frame as the higher-layer payload and send the packet to
the HTTPS layer.
* Else, drop the PPP frame.
sstp-client is known to be broken, it doesn't send SSTP_MSG_CALL_CONNECTED with
PAP and CHAP-MD5 auth, no network data flow and disconnect by negotiation timer
is expected.
Diffstat (limited to 'accel-pppd/include')
-rw-r--r-- | accel-pppd/include/ap_session.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/accel-pppd/include/ap_session.h b/accel-pppd/include/ap_session.h index 8c79d31d..2af2f040 100644 --- a/accel-pppd/include/ap_session.h +++ b/accel-pppd/include/ap_session.h @@ -53,6 +53,7 @@ struct ap_ctrl { char *called_station_id; int dont_ifcfg:1; int ppp:1; + int ppp_npmode:2; void (*started)(struct ap_session*); void (*finished)(struct ap_session *); int (*terminate)(struct ap_session *, int hard); |