backporting: CVE-2011-0721 00/311100/1 accepted/tizen_7.0_base tizen_7.0_base accepted/tizen/7.0/base/20240520.210853 accepted/tizen/7.0/base/20240521.055630
authornekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Wed, 16 Feb 2011 00:18:45 +0000 (00:18 +0000)
committerYoungjae Cho <y0.cho@samsung.com>
Tue, 14 May 2024 05:08:25 +0000 (14:08 +0900)
shadow-4.1.4.2 -> shadow-4.1.4.3

*** security:
- CVE-2011-0721: An insufficient input sanitation in chfn can be exploited
  to create users or groups in a NIS environment.

Origin: upstream, https://github.com/shadow-maint/shadow/commit/0419fc4
Change-Id: I075d55f270ceecfe327640bbac2474a52019ecb8
Signed-off-by: Youngjae Cho <y0.cho@samsung.com>
src/chfn.c
src/chsh.c

index 915202d..bd3e62e 100644 (file)
@@ -551,14 +551,14 @@ static void get_old_fields (const char *gecos)
 static void check_fields (void)
 {
        int err;
-       err = valid_field (fullnm, ":,=");
+       err = valid_field (fullnm, ":,=\n");
        if (err > 0) {
                fprintf (stderr, _("%s: name with non-ASCII characters: '%s'\n"), Prog, fullnm);
        } else if (err < 0) {
                fprintf (stderr, _("%s: invalid name: '%s'\n"), Prog, fullnm);
                fail_exit (E_NOPERM);
        }
-       err = valid_field (roomno, ":,=");
+       err = valid_field (roomno, ":,=\n");
        if (err > 0) {
                fprintf (stderr, _("%s: room number with non-ASCII characters: '%s'\n"), Prog, roomno);
        } else if (err < 0) {
@@ -566,17 +566,17 @@ static void check_fields (void)
                         Prog, roomno);
                fail_exit (E_NOPERM);
        }
-       if (valid_field (workph, ":,=") != 0) {
+       if (valid_field (workph, ":,=\n") != 0) {
                fprintf (stderr, _("%s: invalid work phone: '%s'\n"),
                         Prog, workph);
                fail_exit (E_NOPERM);
        }
-       if (valid_field (homeph, ":,=") != 0) {
+       if (valid_field (homeph, ":,=\n") != 0) {
                fprintf (stderr, _("%s: invalid home phone: '%s'\n"),
                         Prog, homeph);
                fail_exit (E_NOPERM);
        }
-       err = valid_field (slop, ":");
+       err = valid_field (slop, ":\n");
        if (err > 0) {
                fprintf (stderr, _("%s: '%s' contains non-ASCII characters\n"), Prog, slop);
        } else if (err < 0) {
index 25e4fb7..aa8ea26 100644 (file)
@@ -528,7 +528,7 @@ int main (int argc, char **argv)
         * users are restricted to using the shells in /etc/shells.
         * The shell must be executable by the user.
         */
-       if (valid_field (loginsh, ":,=") != 0) {
+       if (valid_field (loginsh, ":,=\n") != 0) {
                fprintf (stderr, _("%s: Invalid entry: %s\n"), Prog, loginsh);
                fail_exit (1);
        }