doc/share/security/patches/SA-20:30/ftpd.patch
Gordon Tetlow a83b2ae035 Add SA-20:27 to SA-20:30.
Approved by:	so
2020-09-15 22:00:07 +00:00

27 lines
750 B
Diff

--- libexec/ftpd/ftpd.c.orig
+++ libexec/ftpd/ftpd.c
@@ -1596,13 +1596,20 @@
* (uid 0 has no root power over NFS if not mapped explicitly.)
*/
if (seteuid(pw->pw_uid) < 0) {
- reply(550, "Can't set uid.");
- goto bad;
+ if (guest || dochroot) {
+ fatalerror("Can't set uid.");
+ } else {
+ reply(550, "Can't set uid.");
+ goto bad;
+ }
}
+ /*
+ * Do not allow the session to live if we're chroot()'ed and chdir()
+ * fails. Otherwise the chroot jail can be escaped.
+ */
if (chdir(homedir) < 0) {
if (guest || dochroot) {
- reply(550, "Can't change to base directory.");
- goto bad;
+ fatalerror("Can't change to base directory.");
} else {
if (chdir("/") < 0) {
reply(550, "Root is inaccessible.");