]> arthur.ath.cx Git - netatalk.git/commitdiff
Prevent security attack guessing valid server accounts
authorfranklahm <franklahm>
Tue, 30 Mar 2010 10:25:49 +0000 (10:25 +0000)
committerfranklahm <franklahm>
Tue, 30 Mar 2010 10:25:49 +0000 (10:25 +0000)
NEWS
etc/uams/uams_dhx2_pam.c
etc/uams/uams_dhx2_passwd.c
etc/uams/uams_dhx_pam.c
etc/uams/uams_dhx_passwd.c
etc/uams/uams_gss.c
etc/uams/uams_pam.c
etc/uams/uams_passwd.c
etc/uams/uams_randnum.c

diff --git a/NEWS b/NEWS
index 2d0f7799c3ce3e05a1d8baea006688c8d17f08d5..0c2515f7e749cd30b17fd9e3e90e50d566b71ef8 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,8 @@ Changes in 2.1-beta2
 ====================
 * NEW: afpd: static generated AFP signature stored in afp_signature.conf,
        cf man 5 afp_signature.conf
+* FIX: afpd: prevent security attack guessing valid server accounts. afpd
+       now returns error -5023 for unknown users, as does AppleFileServer.
 
 Changes in 2.1-beta1
 ====================
index 42489b97fefff8c1507d80bfa4284f798167ca97..fde2df74549344320ed84db0b5288cb6bd49ef5a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: uams_dhx2_pam.c,v 1.11 2010-02-06 09:53:02 franklahm Exp $
+ * $Id: uams_dhx2_pam.c,v 1.12 2010-03-30 10:25:49 franklahm Exp $
  *
  * Copyright (c) 1990,1993 Regents of The University of Michigan.
  * Copyright (c) 1999 Adrian Sun (asun@u.washington.edu)
@@ -343,7 +343,7 @@ static int login(void *obj, char *username, int ulen,  struct passwd **uam_pwd _
 {
     if (( dhxpwd = uam_getname(obj, username, ulen)) == NULL ) {
         LOG(log_info, logtype_uams, "DHX2: unknown username");
-        return AFPERR_PARAM;
+        return AFPERR_NOTAUTH;
     }
 
     PAM_username = username;
index 15b40fd619c2c24f1ddd414a3effd31c2ad11439..af941d15cef45b39eae4906c0bdd0db72e5cf1b7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: uams_dhx2_passwd.c,v 1.7 2010-02-06 09:53:02 franklahm Exp $
+ * $Id: uams_dhx2_passwd.c,v 1.8 2010-03-30 10:25:49 franklahm Exp $
  *
  * Copyright (c) 1990,1993 Regents of The University of Michigan.
  * Copyright (c) 1999 Adrian Sun (asun@u.washington.edu)
@@ -269,7 +269,7 @@ static int login(void *obj, char *username, int ulen,  struct passwd **uam_pwd _
 {
     if (( dhxpwd = uam_getname(obj, username, ulen)) == NULL ) {
         LOG(log_info, logtype_uams, "DHX2: unknown username");
-        return AFPERR_PARAM;
+        return AFPERR_NOTAUTH;
     }
 
     LOG(log_info, logtype_uams, "DHX2 login: %s", username);
index 7b9ee0a16ae7c04b1ffcb3080a9a630a385d5179..e9f30dc1cd6e5af77f252f37589aa27ce83ebbb1 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: uams_dhx_pam.c,v 1.32 2009-11-05 14:38:07 franklahm Exp $
+ * $Id: uams_dhx_pam.c,v 1.33 2010-03-30 10:25:49 franklahm Exp $
  *
  * Copyright (c) 1990,1993 Regents of The University of Michigan.
  * Copyright (c) 1999 Adrian Sun (asun@u.washington.edu) 
@@ -325,7 +325,7 @@ static int login(void *obj, char *username, int ulen,  struct passwd **uam_pwd _
 {
     if (( dhxpwd = uam_getname(obj, username, ulen)) == NULL ) {
         LOG(log_info, logtype_uams, "uams_dhx_pam.c: unknown username");
-       return AFPERR_PARAM;
+        return AFPERR_NOTAUTH;
     }
 
     PAM_username = username;
index 6abbab0a88e3c4d9337e3e1af5c56fab366f9529..7768d82b09be95633008cca718f6fd0e8a835a2f 100644 (file)
@@ -1,5 +1,5 @@
-/*
- * $Id: uams_dhx_passwd.c,v 1.27 2009-11-05 14:38:07 franklahm Exp $
+a/*
+ * $Id: uams_dhx_passwd.c,v 1.28 2010-03-30 10:25:49 franklahm Exp $
  *
  * Copyright (c) 1990,1993 Regents of The University of Michigan.
  * Copyright (c) 1999 Adrian Sun (asun@u.washington.edu) 
@@ -106,7 +106,7 @@ static int pwd_login(void *obj, char *username, int ulen, struct passwd **uam_pw
 #endif /* TRU64 */
 
     if (( dhxpwd = uam_getname(obj, username, ulen)) == NULL ) {
-       return AFPERR_PARAM;
+        return AFPERR_NOTAUTH;
     }
     
     LOG(log_info, logtype_uams, "dhx login: %s", username);
index 2f9d6dc6dac0cf1c5240aad78094de3ab1373147..fb5e73c791a6cd72cfd82d3eb1a315c7b97db2a0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: uams_gss.c,v 1.11 2010-02-15 12:00:36 franklahm Exp $
+ * $Id: uams_gss.c,v 1.12 2010-03-30 10:25:49 franklahm Exp $
  *
  * Copyright (c) 1990,1993 Regents of The University of Michigan.
  * Copyright (c) 1999 Adrian Sun (asun@u.washington.edu)
@@ -574,7 +574,7 @@ static int gss_logincont(void *obj, struct passwd **uam_pwd,
            encoding is the gssapi name in? */
         if((pwd = uam_getname( obj, username, userlen )) == NULL) {
             LOG(log_info, logtype_uams, "uam_getname() failed for %s", username);
-            return AFPERR_PARAM;
+            return AFPERR_NOTAUTH;
         }
         if (uam_checkuser(pwd) < 0) {
             LOG(log_info, logtype_uams, "%s not a valid user", username);
index 081e893ed1d4a0887ffa1d8a14e706327b79dd85..46ce0d51a43d50d020b5737bb5797f9db2364cc4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: uams_pam.c,v 1.23 2009-11-08 01:07:17 didg Exp $
+ * $Id: uams_pam.c,v 1.24 2010-03-30 10:25:49 franklahm Exp $
  *
  * Copyright (c) 1990,1993 Regents of The University of Michigan.
  * Copyright (c) 1999 Adrian Sun (asun@u.washington.edu) 
@@ -156,7 +156,7 @@ static int login(void *obj, char *username, int ulen,  struct passwd **uam_pwd,
     ibuf[ PASSWDLEN ] = '\0';
 
     if (( pwd = uam_getname(obj, username, ulen)) == NULL ) {
-       return AFPERR_PARAM;
+       return AFPERR_NOTAUTH;
     }
 
     LOG(log_info, logtype_uams, "cleartext login: %s", username);
index 71e31787a1307fb6b7931336fa77e7e820fc94c8..e46aac552928cd0a2138dd1e1660b628e291aca2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: uams_passwd.c,v 1.29 2009-11-08 01:07:17 didg Exp $
+ * $Id: uams_passwd.c,v 1.30 2010-03-30 10:25:49 franklahm Exp $
  *
  * Copyright (c) 1990,1993 Regents of The University of Michigan.
  * Copyright (c) 1999 Adrian Sun (asun@u.washington.edu) 
@@ -98,7 +98,7 @@ static int pwd_login(void *obj, char *username, int ulen, struct passwd **uam_pw
     ibuf[ PASSWDLEN ] = '\0';
 
     if (( pwd = uam_getname(obj, username, ulen)) == NULL ) {
-        return AFPERR_PARAM;
+        return AFPERR_NOTAUTH
     }
 
     LOG(log_info, logtype_uams, "cleartext login: %s", username);
index 686cc088e09abe99a838518d580a83d8a287fb44..3d3a5bb9b72afc9bf267a03bb3682d9288f28d1f 100644 (file)
@@ -1,5 +1,5 @@
 /* 
- * $Id: uams_randnum.c,v 1.20 2009-10-22 13:40:11 franklahm Exp $
+ * $Id: uams_randnum.c,v 1.21 2010-03-30 10:25:49 franklahm Exp $
  *
  * Copyright (c) 1990,1993 Regents of The University of Michigan.
  * Copyright (c) 1999 Adrian Sun (asun@u.washington.edu) 
@@ -310,7 +310,7 @@ static int rand_login(void *obj, char *username, int ulen, struct passwd **uam_p
   int err;
  
   if (( randpwd = uam_getname(obj, username, ulen)) == NULL )
-    return AFPERR_PARAM; /* unknown user */
+    return AFPERR_NOTAUTH; /* unknown user */
   
   LOG(log_info, logtype_uams, "randnum/rand2num login: %s", username);
   if (uam_checkuser(randpwd) < 0)