From 0f2c18df473d131ff4c696078923e622e1bb4682 Mon Sep 17 00:00:00 2001 From: Vladislav Grishenko Date: Mon, 29 Jun 2020 02:32:13 +0500 Subject: 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. --- accel-pppd/include/ap_session.h | 1 + 1 file changed, 1 insertion(+) (limited to 'accel-pppd/include') 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); -- cgit v1.2.3