summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--recipes-security/refpolicy/refpolicy/0061-policy-modules-system-locallogin-allow-local_login_t.patch149
-rw-r--r--recipes-security/refpolicy/refpolicy_common.inc1
2 files changed, 150 insertions, 0 deletions
diff --git a/recipes-security/refpolicy/refpolicy/0061-policy-modules-system-locallogin-allow-local_login_t.patch b/recipes-security/refpolicy/refpolicy/0061-policy-modules-system-locallogin-allow-local_login_t.patch
new file mode 100644
index 0000000..d5a63bb
--- /dev/null
+++ b/recipes-security/refpolicy/refpolicy/0061-policy-modules-system-locallogin-allow-local_login_t.patch
@@ -0,0 +1,149 @@
1From 9cee0ec6ec9bb0af826f0f2af88e36159429e1e7 Mon Sep 17 00:00:00 2001
2From: Clayton Casciato <ccasciato@21sw.us>
3Date: Thu, 15 Jan 2026 16:27:43 -0700
4Subject: [PATCH] locallogin: allow local_login_t lastlog_t create,delete
5
6Note that the { read } AVC denial was not addressed.
7
8It is currently unknown what specifically triggers this and Fedora
9policy does not appear to allow this.
10
11--
12
13Fedora:
14
15https://github.com/fedora-selinux/selinux-policy/commit/fe29879463b7176dab24c0a9210131fa6e7cd130
16"Allow systemd (PID 1) create lastlog entries"
17
18--
19
20pam_lastlog2(login:session): Cannot open database
21(/var/lib/lastlog/lastlog2.db): unable to open database file
22
23PROCTITLE proctitle=2F62696E2F6C6F67696E002D70002D2D00726F6F74
24
25AVC avc: denied { getattr } for pid=244 comm="login"
26path="/var/lib/lastlog" dev="vda" ino=32776
27scontext=system_u:system_r:local_login_t:s0
28tcontext=system_u:object_r:lastlog_t:s0 tclass=dir permissive=1
29
30SYSCALL arch=c00000b7 syscall=79 success=yes exit=0 a0=ffffffffffffff9c
31a1=55557ab4db98 a2=7ffff6dd39c0 a3=100 items=0 ppid=1 pid=244
32auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0
33tty=ttyAMA0 ses=4294967295 comm="login" exe="/usr/bin/login.shadow"
34subj=system_u:system_r:local_login_t:s0 key=(null)
35
36--
37
38PROCTITLE proctitle=2F62696E2F6C6F67696E002D70002D2D00726F6F74
39
40AVC avc: denied { search } for pid=244 comm="login" name="lastlog"
41dev="vda" ino=32776 scontext=system_u:system_r:local_login_t:s0
42tcontext=system_u:object_r:lastlog_t:s0 tclass=dir permissive=1
43
44SYSCALL arch=c00000b7 syscall=79 success=no exit=-2 a0=ffffffffffffff9c
45a1=55557ab4db98 a2=7ffff6dd39c0 a3=100 items=0 ppid=1 pid=244
46auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0
47tty=ttyAMA0 ses=4294967295 comm="login" exe="/usr/bin/login.shadow"
48subj=system_u:system_r:local_login_t:s0 key=(null)
49
50--
51
52PROCTITLE proctitle=2F62696E2F6C6F67696E002D70002D2D00726F6F74
53
54AVC avc: denied { write } for pid=244 comm="login" name="lastlog"
55dev="vda" ino=32776 scontext=system_u:system_r:local_login_t:s0
56tcontext=system_u:object_r:lastlog_t:s0 tclass=dir permissive=1
57
58AVC avc: denied { add_name } for pid=244 comm="login"
59name="lastlog2.db" scontext=system_u:system_r:local_login_t:s0
60tcontext=system_u:object_r:lastlog_t:s0 tclass=dir permissive=1
61
62AVC avc: denied { create } for pid=244 comm="login"
63name="lastlog2.db" scontext=system_u:system_r:local_login_t:s0
64tcontext=system_u:object_r:lastlog_t:s0 tclass=file permissive=1
65
66SYSCALL arch=c00000b7 syscall=56 success=yes exit=4 a0=ffffffffffffff9c
67a1=55557ab4e2b4 a2=88042 a3=1a4 items=4 ppid=1 pid=244 auid=4294967295
68uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=ttyAMA0
69ses=4294967295 comm="login" exe="/usr/bin/login.shadow"
70subj=system_u:system_r:local_login_t:s0 key=(null)
71
72CWD cwd="/"
73
74PATH item=0 name=(null) inode=32776 dev=fe:00 mode=040755 ouid=0 ogid=0
75rdev=00:00 obj=system_u:object_r:lastlog_t:s0 nametype=PARENT cap_fp=0
76cap_fi=0 cap_fe=0 cap_fver=0 cap_frootid=0
77
78PATH item=1 name=(null) nametype=CREATE cap_fp=0 cap_fi=0 cap_fe=0
79cap_fver=0 cap_frootid=0
80
81PATH item=2 name=(null) inode=32776 dev=fe:00 mode=040755 ouid=0 ogid=0
82rdev=00:00 obj=system_u:object_r:lastlog_t:s0 nametype=PARENT cap_fp=0
83cap_fi=0 cap_fe=0 cap_fver=0 cap_frootid=0
84
85PATH item=3 name=(null) inode=32867 dev=fe:00 mode=0100644 ouid=0 ogid=0
86rdev=00:00 obj=system_u:object_r:lastlog_t:s0 nametype=CREATE cap_fp=0
87cap_fi=0 cap_fe=0 cap_fver=0 cap_frootid=0
88
89--
90
91PROCTITLE proctitle=2F62696E2F6C6F67696E002D70002D2D00726F6F74
92
93AVC avc: denied { read } for pid=244 comm="login" name="lastlog"
94dev="vda" ino=32776 scontext=system_u:system_r:local_login_t:s0
95tcontext=system_u:object_r:lastlog_t:s0 tclass=dir permissive=1
96
97AVC avc: denied { open } for pid=244 comm="login"
98path="/var/lib/lastlog" dev="vda" ino=32776
99scontext=system_u:system_r:local_login_t:s0
100tcontext=system_u:object_r:lastlog_t:s0 tclass=dir permissive=1
101
102SYSCALL arch=c00000b7 syscall=56 success=yes exit=6 a0=ffffffffffffff9c
103a1=7ffff6dd5740 a2=80000 a3=0 items=0 ppid=1 pid=244 auid=4294967295
104uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=ttyAMA0
105ses=4294967295 comm="login" exe="/usr/bin/login.shadow"
106subj=system_u:system_r:local_login_t:s0 key=(null)
107
108--
109
110PROCTITLE proctitle=2F62696E2F6C6F67696E002D70002D2D00726F6F74
111
112AVC avc: denied { remove_name } for pid=244 comm="login"
113name="lastlog2.db-journal" dev="vda" ino=32868
114scontext=system_u:system_r:local_login_t:s0
115tcontext=system_u:object_r:lastlog_t:s0 tclass=dir permissive=1
116
117AVC avc: denied { unlink } for pid=244 comm="login"
118name="lastlog2.db-journal" dev="vda" ino=32868
119scontext=system_u:system_r:local_login_t:s0
120tcontext=system_u:object_r:lastlog_t:s0 tclass=file permissive=1
121
122SYSCALL arch=c00000b7 syscall=35 success=yes exit=0 a0=ffffffffffffff9c
123a1=55557ab4e2d2 a2=0 a3=7fff4a1abb68 items=0 ppid=1 pid=244
124auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0
125tty=ttyAMA0 ses=4294967295 comm="login" exe="/usr/bin/login.shadow"
126subj=system_u:system_r:local_login_t:s0 key=(null)
127
128Signed-off-by: Clayton Casciato <ccasciato@21sw.us>
129
130Upstream-Status: Backport [https://github.com/SELinuxProject/refpolicy/commit/93a6a53391f13d13a1d7e84872ccc227b5c550ec]
131
132Signed-off-by: Clayton Casciato <majortomtosourcecontrol@gmail.com>
133---
134 policy/modules/system/locallogin.te | 2 ++
135 1 file changed, 2 insertions(+)
136
137diff --git a/policy/modules/system/locallogin.te b/policy/modules/system/locallogin.te
138index 75ee52efd..5840ad5a9 100644
139--- a/policy/modules/system/locallogin.te
140+++ b/policy/modules/system/locallogin.te
141@@ -122,6 +122,8 @@ term_relabel_all_ttys(local_login_t)
142 term_setattr_all_ttys(local_login_t)
143 term_setattr_unallocated_ttys(local_login_t)
144
145+auth_create_lastlog(local_login_t)
146+auth_delete_lastlog(local_login_t)
147 auth_rw_login_records(local_login_t)
148 auth_rw_faillog(local_login_t)
149 auth_manage_pam_runtime_dirs(local_login_t)
diff --git a/recipes-security/refpolicy/refpolicy_common.inc b/recipes-security/refpolicy/refpolicy_common.inc
index b69cc31..3af37c5 100644
--- a/recipes-security/refpolicy/refpolicy_common.inc
+++ b/recipes-security/refpolicy/refpolicy_common.inc
@@ -76,6 +76,7 @@ SRC_URI += " \
76 file://0058-policy-modules-system-logging-allow-miscfiles_read_g.patch \ 76 file://0058-policy-modules-system-logging-allow-miscfiles_read_g.patch \
77 file://0059-policy-modules-system-authlogin-label-var_lib_lastlo.patch \ 77 file://0059-policy-modules-system-authlogin-label-var_lib_lastlo.patch \
78 file://0060-policy-modules-system-authlogin-add-auth_create_last.patch \ 78 file://0060-policy-modules-system-authlogin-add-auth_create_last.patch \
79 file://0061-policy-modules-system-locallogin-allow-local_login_t.patch \
79 " 80 "
80 81
81S = "${UNPACKDIR}/refpolicy" 82S = "${UNPACKDIR}/refpolicy"