Skip to content

pptpd: mppe option no longer recognized #30086

Description

@peci1

Package Name

pptpd

Maintainer

@thiagoricciardi

OpenWrt Version

24.10

OpenWrt Target/Subtarget

mvebu/cortexa9

Steps to Reproduce

  1. set some mppe options in /etc/config/pptpd
  2. Connect with a client that enforces MPPE-128
  3. Fail, no connection

This is the config:

config service 'pptpd'
        option 'enabled' '1'
        option 'localip' '192.168.1.1'
        option 'remoteip' '192.168.1.15-17'
       #option 'mppe' 'required,no40,no56,stateless'
        option 'logwtmp' '0'

This is the rendered /var/etc/optiond.pptpd:

debug
logfile /tmp/pptp-server.log
auth
name "pptp-server"
lcp-echo-failure 3
lcp-echo-interval 60
default-asyncmap
mtu 1440
mru 1440
nobsdcomp
nodeflate
#noproxyarp
#nomppc
#novj
#novjccomp
#nomagic
require-mschap-v2
refuse-chap
refuse-mschap
refuse-eap
refuse-pap
#ms-dns 172.16.1.1
#plugin radius.so
#radius-config-file /etc/radius.conf
mppe required,no40,no56,stateless

Actual Behaviour

When the client tries to connect, I see this in the log:

2026-07-24 01:05:50 info pptpd[2313]: CTRL: Client XY control connection started
2026-07-24 01:05:51 info pptpd[2313]: CTRL: Starting call (launching pppd, opening GRE)
2026-07-24 01:05:51 err pppd[2318]: In file /var/etc/options.pptpd: unrecognized option 'mppe'
2026-07-24 01:05:51 err pptpd[2313]: GRE: read(fd=6,buffer=42242a,len=8196) from PTY failed: status = -1 error = I/O error, usually caused by unexpected termination of pppd, check option syntax and pppd logs
2026-07-24 01:05:51 err pptpd[2313]: CTRL: PTY read or GRE write failed (pty,gre)=(6,7)
2026-07-24 01:05:51 debug pptpd[2313]: CTRL: Reaping child PPP[2318]
2026-07-24 01:05:51 info pptpd[2313]: CTRL: Client XY control connection finished

When I replace this line in the rendered options:

mppe required,no40,no56,stateless

with this one:

nomppe-40
require-mppe-128
nomppe-stateful

The connection works.

I think pptpd or ppp got updated and the old syntax stopped working while the init script stil uses it.

This is a hotfix of the init script I used on my router to get it working:

57c57,60
<       echo "mppe $(echo $mppe | sed -e 's/\s/,/g')" >> $OPTIONS_PPTP
---
>       #echo "mppe $(echo $mppe | sed -e 's/\s/,/g')" >> $OPTIONS_PPTP
>       echo "nomppe-40" >> $OPTIONS_PPTP
>       echo "require-mppe-128" >> $OPTIONS_PPTP
>       echo "nomppe-stateful" >> $OPTIONS_PPTP

Confirmation Checklist

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions