** Description changed:

+ [Impact]
+ 
+ When users have a Match section in their sshd config, their
+ configuration cannot be parsed by the sshd-socket-generator (because
+ there is no connection, hence no connection spec to be matched), and the
+ generator fails. This means no custom config is applied at all.
+ 
+ [Test Plan]
+ 
+ 1. On a noble system with sshd installed, create a drop-in config with a
+ Match directive, and run the generator locally:
+ 
+ $ cat > /etc/ssh/sshd_config.d/custom.conf << EOF
+ Port 1234
+ Match LocalPort 22
+     PasswordAuthentication no
+ EOF
+ $ /lib/systemd/system-generators/sshd-socket-generator .
+ 'Match LocalPort' in configuration but 'lport' not in connection test 
specification.
+ 
+ On an affected system, the above error will be shown. On a patched
+ system, the generator will succeed, and
+ /run/system/generator/ssh.socket.d/addresses.conf will reflect the Port
+ 1234 option.
+ 
+ 2. A new subtest was added to debian/tests/sshd-socket-generator,
+ test_match_port. It does the same as the above, and should pass in
+ autopkgtest.
+ 
+ [Where problems could occur]
+ 
+ This patch simply removes the code from sshd-socket-generator that tries
+ to parse the match config. If problems did occur, it would be related to
+ the generator again. Specifically, it would likely be related to
+ missing/unparsed options.
+ 
+ [Original Description]
+ 
  When using the Match statement in sshd_config or sshd_config.d/*.conf
  with socket activation(not classic method), sshd does not start as
  expected.
  
  Environment:
  
  Ubuntu: Ubuntu 24.04 LTS
  OpenSSH Server: 1:9.6p1-3ubuntu13.4
- 
  
  Steps to Reproduce:
  
  /etc/ssh/sshd_config
  ```
  Include /etc/ssh/sshd_config.d/*.conf
  Port 22
  Port 22222
  KbdInteractiveAuthentication no
  UsePAM yes
  X11Forwarding yes
  PrintMotd no
  AcceptEnv LANG LC_*
  Subsystem     sftp    /usr/lib/openssh/sftp-server
  Match LocalPort 22222
-     PasswordAuthentication no
-     PubkeyAuthentication yes
+     PasswordAuthentication no
+     PubkeyAuthentication yes
  ```
  
  command:
  
  sudo systemctl daemon-reload && sudo systemctl restart ssh.socket
  
- 
  Expected Behavior:
  
  sshd should listen on both ports 22 and 22222.
  When connecting via port 22222, password login should not be allowed and only 
public key authentication should be permitted.
- 
  
  Actual Behavior:
  
  sshd only listens on port 22 and not on port 22222. The configuration is
  not correctly applied.
  
  After daemon-reload, the output from journalctl is as follows:
  
  $ sudo journalctl -t (sd-exec-
  Aug 04 12:47:36 ults (sd-exec-[479259]: 
/usr/lib/systemd/system-generators/sshd-socket-generator failed with exit 
status 255.
- 
  
  Additional Information:
  
  1.Using sshd -T -C to test the configuration produces the following result:
  $ sudo sshd -T -C lport=22 | grep passwordauthentication
  passwordauthentication yes
  
  $ sudo sshd -T -C lport=22222 | grep passwordauthentication
  passwordauthentication no
  
  2.The output when manually running 
/usr/lib/systemd/system-generators/sshd-socket-generator is:
  $ sudo /usr/lib/systemd/system-generators/sshd-socket-generator ./
  'Match LocalPort' in configuration but 'lport' not in connection test 
specification.
  
  3.I have test some cases, if sshd-socket-generator can not handle config
  rightly, sshd seems to run with default config.
  
- 
- And I also noticed that there is no test case about the Match directive in 
https://git.launchpad.net/ubuntu/+source/openssh/tree/debian/tests/sshd-socket-generator.
 
+ And I also noticed that there is no test case about the Match directive
+ in
+ https://git.launchpad.net/ubuntu/+source/openssh/tree/debian/tests/sshd-
+ socket-generator.
  
  I guess the root cause of the issue lies in the sshd-socket-generator
  not correctly handling the Match directive.
  
  And a detailed assessment of potential security issues which caused by
  this bug is needed.
  
  If socket activation is to be widely adopted, this issue will
  undoubtedly be a significant stumbling block.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2076023

Title:
  Failed to apply 'Match' directive in sshd_config with sshd-socket-
  generator

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/2076023/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to