diff options
5 files changed, 108 insertions, 141 deletions
diff --git a/recipes-security/refpolicy/refpolicy/0033-policy-modules-services-rpcbind-allow-rpcbind_t-to-c.patch b/recipes-security/refpolicy/refpolicy/0033-policy-modules-services-rpcbind-allow-rpcbind_t-to-c.patch deleted file mode 100644 index 073068e..0000000 --- a/recipes-security/refpolicy/refpolicy/0033-policy-modules-services-rpcbind-allow-rpcbind_t-to-c.patch +++ /dev/null | |||
| @@ -1,34 +0,0 @@ | |||
| 1 | From 8cbc09769a08cf3f5dcb611d471e5da298bde67c Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Yi Zhao <yi.zhao@windriver.com> | ||
| 3 | Date: Wed, 1 Jul 2020 08:44:07 +0800 | ||
| 4 | Subject: [PATCH] policy/modules/services/rpcbind: allow rpcbind_t to create | ||
| 5 | directory with label rpcbind_runtime_t | ||
| 6 | |||
| 7 | Fixes: | ||
| 8 | avc: denied { create } for pid=136 comm="rpcbind" name="rpcbind" | ||
| 9 | scontext=system_u:system_r:rpcbind_t:s0-s15:c0.c1023 | ||
| 10 | tcontext=system_u:object_r:var_run_t:s0 tclass=dir permissive=0 | ||
| 11 | |||
| 12 | Upstream-Status: Inappropriate [embedded specific] | ||
| 13 | |||
| 14 | Signed-off-by: Yi Zhao <yi.zhao@windriver.com> | ||
| 15 | --- | ||
| 16 | policy/modules/services/rpcbind.te | 2 +- | ||
| 17 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
| 18 | |||
| 19 | diff --git a/policy/modules/services/rpcbind.te b/policy/modules/services/rpcbind.te | ||
| 20 | index 137c21ece..2a712192b 100644 | ||
| 21 | --- a/policy/modules/services/rpcbind.te | ||
| 22 | +++ b/policy/modules/services/rpcbind.te | ||
| 23 | @@ -25,7 +25,7 @@ files_type(rpcbind_var_lib_t) | ||
| 24 | # Local policy | ||
| 25 | # | ||
| 26 | |||
| 27 | -allow rpcbind_t self:capability { dac_override setgid setuid sys_tty_config }; | ||
| 28 | +allow rpcbind_t self:capability { dac_override setgid setuid sys_tty_config chown }; | ||
| 29 | # net_admin is for SO_SNDBUFFORCE | ||
| 30 | dontaudit rpcbind_t self:capability net_admin; | ||
| 31 | allow rpcbind_t self:fifo_file rw_fifo_file_perms; | ||
| 32 | -- | ||
| 33 | 2.25.1 | ||
| 34 | |||
diff --git a/recipes-security/refpolicy/refpolicy/0039-policy-modules-system-authlogin-fix-login-errors-aft.patch b/recipes-security/refpolicy/refpolicy/0039-policy-modules-system-authlogin-fix-login-errors-aft.patch deleted file mode 100644 index 060b01b..0000000 --- a/recipes-security/refpolicy/refpolicy/0039-policy-modules-system-authlogin-fix-login-errors-aft.patch +++ /dev/null | |||
| @@ -1,104 +0,0 @@ | |||
| 1 | From b5dae809f2b46b82b75abcb562974212b370aa39 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Yi Zhao <yi.zhao@windriver.com> | ||
| 3 | Date: Fri, 8 Dec 2023 14:16:26 +0800 | ||
| 4 | Subject: [PATCH] policy/modules/system/authlogin: fix login errors after | ||
| 5 | enabling systemd DynamicUser | ||
| 6 | |||
| 7 | Allow domains using PAM to read /etc/shadow to fix login errors after | ||
| 8 | enabling systemd DynamicUser. | ||
| 9 | |||
| 10 | Fixes: | ||
| 11 | avc: denied { read } for pid=434 comm="login" name="shadow" | ||
| 12 | dev="sda2" ino=26314 | ||
| 13 | scontext=system_u:system_r:local_login_t:s0-s15:c0.c1023 | ||
| 14 | tcontext=system_u:object_r:shadow_t:s0 tclass=file permissive=1 | ||
| 15 | |||
| 16 | avc: denied { open } for pid=434 comm="login" path="/etc/shadow" | ||
| 17 | dev="sda2" ino=26314 | ||
| 18 | scontext=system_u:system_r:local_login_t:s0-s15:c0.c1023 | ||
| 19 | tcontext=system_u:object_r:shadow_t:s0 tclass=file permissive=1 | ||
| 20 | |||
| 21 | avc: denied { getattr } for pid=434 comm="login" path="/etc/shadow" | ||
| 22 | dev="sda2" ino=26314 | ||
| 23 | scontext=system_u:system_r:local_login_t:s0-s15:c0.c1023 | ||
| 24 | tcontext=system_u:object_r:shadow_t:s0 tclass=file permissive=1 | ||
| 25 | |||
| 26 | avc: denied { read } for pid=457 comm="sshd" name="shadow" dev="sda2" | ||
| 27 | ino=26314 scontext=system_u:system_r:sshd_t:s0-s15:c0.c1023 | ||
| 28 | tcontext=system_u:object_r:shadow_t:s0 tclass=file permissive=1 | ||
| 29 | |||
| 30 | avc: denied { open } for pid=457 comm="sshd" path="/etc/shadow" | ||
| 31 | dev="sda2" ino=26314 scontext=system_u:system_r:sshd_t:s0-s15:c0.c1023 | ||
| 32 | tcontext=system_u:object_r:shadow_t:s0 tclass=file permissive=1 | ||
| 33 | |||
| 34 | avc: denied { getattr } for pid=457 comm="sshd" path="/etc/shadow" | ||
| 35 | dev="sda2" ino=26314 scontext=system_u:system_r:sshd_t:s0-s15:c0.c1023 | ||
| 36 | tcontext=system_u:object_r:shadow_t:s0 tclass=file permissive=1 | ||
| 37 | |||
| 38 | Upstream-Status: Inappropriate [embedded specific] | ||
| 39 | |||
| 40 | Signed-off-by: Yi Zhao <yi.zhao@windriver.com> | ||
| 41 | --- | ||
| 42 | policy/modules/admin/su.if | 4 ++-- | ||
| 43 | policy/modules/system/authlogin.te | 2 +- | ||
| 44 | policy/modules/system/selinuxutil.te | 2 ++ | ||
| 45 | 3 files changed, 5 insertions(+), 3 deletions(-) | ||
| 46 | |||
| 47 | diff --git a/policy/modules/admin/su.if b/policy/modules/admin/su.if | ||
| 48 | index dce1a0ea9..c55cdfc09 100644 | ||
| 49 | --- a/policy/modules/admin/su.if | ||
| 50 | +++ b/policy/modules/admin/su.if | ||
| 51 | @@ -76,7 +76,7 @@ template(`su_restricted_domain_template', ` | ||
| 52 | selinux_compute_access_vector($1_su_t) | ||
| 53 | |||
| 54 | auth_domtrans_chk_passwd($1_su_t) | ||
| 55 | - auth_dontaudit_read_shadow($1_su_t) | ||
| 56 | + auth_read_shadow($1_su_t) | ||
| 57 | auth_use_nsswitch($1_su_t) | ||
| 58 | auth_create_faillog_files($1_su_t) | ||
| 59 | auth_rw_faillog($1_su_t) | ||
| 60 | @@ -183,7 +183,7 @@ template(`su_role_template',` | ||
| 61 | selinux_use_status_page($1_su_t) | ||
| 62 | |||
| 63 | auth_domtrans_chk_passwd($1_su_t) | ||
| 64 | - auth_dontaudit_read_shadow($1_su_t) | ||
| 65 | + auth_read_shadow($1_su_t) | ||
| 66 | auth_use_nsswitch($1_su_t) | ||
| 67 | auth_create_faillog_files($1_su_t) | ||
| 68 | auth_rw_faillog($1_su_t) | ||
| 69 | diff --git a/policy/modules/system/authlogin.te b/policy/modules/system/authlogin.te | ||
| 70 | index 5d675bc15..2ca79e95d 100644 | ||
| 71 | --- a/policy/modules/system/authlogin.te | ||
| 72 | +++ b/policy/modules/system/authlogin.te | ||
| 73 | @@ -10,7 +10,7 @@ policy_module(authlogin) | ||
| 74 | ## Allow PAM usage. If disabled, read access /etc/shadow is allowed for domains that normally use PAM. | ||
| 75 | ## </p> | ||
| 76 | ## </desc> | ||
| 77 | -gen_tunable(authlogin_pam, true) | ||
| 78 | +gen_tunable(authlogin_pam, false) | ||
| 79 | |||
| 80 | ## <desc> | ||
| 81 | ## <p> | ||
| 82 | diff --git a/policy/modules/system/selinuxutil.te b/policy/modules/system/selinuxutil.te | ||
| 83 | index ebc1abc10..c6b2ec47a 100644 | ||
| 84 | --- a/policy/modules/system/selinuxutil.te | ||
| 85 | +++ b/policy/modules/system/selinuxutil.te | ||
| 86 | @@ -251,6 +251,7 @@ allow newrole_t self:netlink_audit_socket { create_netlink_socket_perms nlmsg_re | ||
| 87 | read_files_pattern(newrole_t, default_context_t, default_context_t) | ||
| 88 | read_lnk_files_pattern(newrole_t, default_context_t, default_context_t) | ||
| 89 | |||
| 90 | +kernel_getattr_proc(newrole_t) | ||
| 91 | kernel_read_system_state(newrole_t) | ||
| 92 | kernel_read_kernel_sysctls(newrole_t) | ||
| 93 | kernel_dontaudit_getattr_proc(newrole_t) | ||
| 94 | @@ -295,6 +296,7 @@ auth_run_chk_passwd(newrole_t, newrole_roles) | ||
| 95 | auth_run_upd_passwd(newrole_t, newrole_roles) | ||
| 96 | auth_rw_faillog(newrole_t) | ||
| 97 | auth_search_faillog(newrole_t) | ||
| 98 | +auth_read_shadow(newrole_t) | ||
| 99 | |||
| 100 | # Write to utmp. | ||
| 101 | init_rw_utmp(newrole_t) | ||
| 102 | -- | ||
| 103 | 2.25.1 | ||
| 104 | |||
diff --git a/recipes-security/refpolicy/refpolicy/0057-Allow-services-to-read-tmpfs-under-run-credentials.patch b/recipes-security/refpolicy/refpolicy/0057-Allow-services-to-read-tmpfs-under-run-credentials.patch new file mode 100644 index 0000000..629de01 --- /dev/null +++ b/recipes-security/refpolicy/refpolicy/0057-Allow-services-to-read-tmpfs-under-run-credentials.patch | |||
| @@ -0,0 +1,106 @@ | |||
| 1 | From be681d155c6c62a2ec4939dedc921921fe73e277 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Yi Zhao <yi.zhao@windriver.com> | ||
| 3 | Date: Fri, 30 Aug 2024 12:39:48 +0800 | ||
| 4 | Subject: [PATCH] Allow services to read tmpfs under /run/credentials/ | ||
| 5 | |||
| 6 | $ mount | grep credentials | ||
| 7 | tmpfs on /run/credentials/systemd-journald.service type tmpfs (ro,nosuid,nodev,noexec,relatime,nosymfollow,seclabel,size=1024k,nr_inodes=1024,mode=700,noswap) | ||
| 8 | tmpfs on /run/credentials/systemd-udev-load-credentials.service type tmpfs (ro,nosuid,nodev,noexec,relatime,nosymfollow,seclabel,size=1024k,nr_inodes=1024,mode=700,noswap) | ||
| 9 | tmpfs on /run/credentials/systemd-tmpfiles-setup-dev-early.service type tmpfs (ro,nosuid,nodev,noexec,relatime,nosymfollow,seclabel,size=1024k,nr_inodes=1024,mode=700,noswap) | ||
| 10 | tmpfs on /run/credentials/systemd-sysctl.service type tmpfs (ro,nosuid,nodev,noexec,relatime,nosymfollow,seclabel,size=1024k,nr_inodes=1024,mode=700,noswap) | ||
| 11 | tmpfs on /run/credentials/systemd-tmpfiles-setup-dev.service type tmpfs (ro,nosuid,nodev,noexec,relatime,nosymfollow,seclabel,size=1024k,nr_inodes=1024,mode=700,noswap) | ||
| 12 | tmpfs on /run/credentials/systemd-vconsole-setup.service type tmpfs (ro,nosuid,nodev,noexec,relatime,nosymfollow,seclabel,size=1024k,nr_inodes=1024,mode=700,noswap) | ||
| 13 | tmpfs on /run/credentials/systemd-tmpfiles-setup.service type tmpfs (ro,nosuid,nodev,noexec,relatime,nosymfollow,seclabel,size=1024k,nr_inodes=1024,mode=700,noswap) | ||
| 14 | tmpfs on /run/credentials/systemd-resolved.service type tmpfs (ro,nosuid,nodev,noexec,relatime,nosymfollow,seclabel,size=1024k,nr_inodes=1024,mode=700,noswap) | ||
| 15 | tmpfs on /run/credentials/systemd-networkd.service type tmpfs (ro,nosuid,nodev,noexec,relatime,nosymfollow,seclabel,size=1024k,nr_inodes=1024,mode=700,noswap) | ||
| 16 | tmpfs on /run/credentials/getty@tty1.service type tmpfs (ro,nosuid,nodev,noexec,relatime,nosymfollow,seclabel,size=1024k,nr_inodes=1024,mode=700,noswap) | ||
| 17 | |||
| 18 | Fixes: | ||
| 19 | avc: denied { search } for pid=106 comm="systemd-journal" name="/" | ||
| 20 | dev="tmpfs" ino=1 scontext=system_u:system_r:syslogd_t:s15:c0.c1023 | ||
| 21 | tcontext=system_u:object_r:tmpfs_t:s0 tclass=dir permissive=1 | ||
| 22 | |||
| 23 | avc: denied { read } for pid=114 comm="udevadm" name="/" dev="tmpfs" | ||
| 24 | ino=1 scontext=system_u:system_r:udev_t:s0-s15:c0.c1023 | ||
| 25 | tcontext=system_u:object_r:tmpfs_t:s0 tclass=dir permissive=1 | ||
| 26 | |||
| 27 | avc: denied { open } for pid=114 comm="udevadm" | ||
| 28 | path="/run/credentials/systemd-udev-load-credentials.service" | ||
| 29 | dev="tmpfs" ino=1 scontext=system_u:system_r:udev_t:s0-s15:c0.c1023 | ||
| 30 | tcontext=system_u:object_r:tmpfs_t:s0 tclass=dir permissive=1 | ||
| 31 | |||
| 32 | avc: denied { read } for pid=353 comm="agetty" name="/" dev="tmpfs" | ||
| 33 | ino=1 scontext=system_u:system_r:getty_t:s0-s15:c0.c1023 | ||
| 34 | tcontext=system_u:object_r:tmpfs_t:s0 tclass=dir permissive=1 | ||
| 35 | |||
| 36 | avc: denied { open } for pid=353 comm="agetty" | ||
| 37 | path="/run/credentials/getty@tty1.service" dev="tmpfs" ino=1 | ||
| 38 | scontext=system_u:system_r:getty_t:s0-s15:c0.c1023 | ||
| 39 | tcontext=system_u:object_r:tmpfs_t:s0 tclass=dir permissive=1 | ||
| 40 | |||
| 41 | avc: denied { getattr } for pid=353 comm="agetty" | ||
| 42 | path="/run/credentials/getty@tty1.service" dev="tmpfs" ino=1 | ||
| 43 | scontext=system_u:system_r:getty_t:s0-s15:c0.c1023 | ||
| 44 | tcontext=system_u:object_r:tmpfs_t:s0 tclass=dir permissive=1 | ||
| 45 | |||
| 46 | Upstream-Status: Pending | ||
| 47 | |||
| 48 | Signed-off-by: Yi Zhao <yi.zhao@windriver.com> | ||
| 49 | --- | ||
| 50 | policy/modules/system/getty.te | 1 + | ||
| 51 | policy/modules/system/logging.te | 1 + | ||
| 52 | policy/modules/system/systemd.te | 1 + | ||
| 53 | policy/modules/system/udev.te | 1 + | ||
| 54 | 4 files changed, 4 insertions(+) | ||
| 55 | |||
| 56 | diff --git a/policy/modules/system/getty.te b/policy/modules/system/getty.te | ||
| 57 | index a900226bf..75b94785b 100644 | ||
| 58 | --- a/policy/modules/system/getty.te | ||
| 59 | +++ b/policy/modules/system/getty.te | ||
| 60 | @@ -75,6 +75,7 @@ fs_getattr_cgroup(getty_t) | ||
| 61 | fs_search_cgroup_dirs(getty_t) | ||
| 62 | # for error condition handling | ||
| 63 | fs_getattr_xattr_fs(getty_t) | ||
| 64 | +fs_list_tmpfs(getty_t) | ||
| 65 | |||
| 66 | mcs_process_set_categories(getty_t) | ||
| 67 | |||
| 68 | diff --git a/policy/modules/system/logging.te b/policy/modules/system/logging.te | ||
| 69 | index fc73825fa..d5878876b 100644 | ||
| 70 | --- a/policy/modules/system/logging.te | ||
| 71 | +++ b/policy/modules/system/logging.te | ||
| 72 | @@ -495,6 +495,7 @@ files_read_kernel_symbol_table(syslogd_t) | ||
| 73 | files_var_lib_filetrans(syslogd_t, syslogd_var_lib_t, { file dir }) | ||
| 74 | |||
| 75 | fs_getattr_all_fs(syslogd_t) | ||
| 76 | +fs_list_tmpfs(syslogd_t) | ||
| 77 | fs_search_auto_mountpoints(syslogd_t) | ||
| 78 | |||
| 79 | mls_file_write_all_levels(syslogd_t) # Need to be able to write to /var/run/ and /var/log directories | ||
| 80 | diff --git a/policy/modules/system/systemd.te b/policy/modules/system/systemd.te | ||
| 81 | index 22a319c36..0440b4795 100644 | ||
| 82 | --- a/policy/modules/system/systemd.te | ||
| 83 | +++ b/policy/modules/system/systemd.te | ||
| 84 | @@ -1303,6 +1303,7 @@ files_watch_root_dirs(systemd_networkd_t) | ||
| 85 | files_list_runtime(systemd_networkd_t) | ||
| 86 | |||
| 87 | fs_getattr_all_fs(systemd_networkd_t) | ||
| 88 | +fs_list_tmpfs(systemd_networkd_t) | ||
| 89 | fs_search_cgroup_dirs(systemd_networkd_t) | ||
| 90 | fs_read_nsfs_files(systemd_networkd_t) | ||
| 91 | fs_watch_memory_pressure(systemd_networkd_t) | ||
| 92 | diff --git a/policy/modules/system/udev.te b/policy/modules/system/udev.te | ||
| 93 | index b2e43aa7d..f543a48d2 100644 | ||
| 94 | --- a/policy/modules/system/udev.te | ||
| 95 | +++ b/policy/modules/system/udev.te | ||
| 96 | @@ -142,6 +142,7 @@ files_dontaudit_getattr_tmp_dirs(udev_t) | ||
| 97 | |||
| 98 | fs_getattr_all_fs(udev_t) | ||
| 99 | fs_list_inotifyfs(udev_t) | ||
| 100 | +fs_list_tmpfs(udev_t) | ||
| 101 | fs_read_cgroup_files(udev_t) | ||
| 102 | fs_rw_anon_inodefs_files(udev_t) | ||
| 103 | fs_search_tracefs(udev_t) | ||
| 104 | -- | ||
| 105 | 2.25.1 | ||
| 106 | |||
diff --git a/recipes-security/refpolicy/refpolicy_common.inc b/recipes-security/refpolicy/refpolicy_common.inc index 7b45882..8c9d046 100644 --- a/recipes-security/refpolicy/refpolicy_common.inc +++ b/recipes-security/refpolicy/refpolicy_common.inc | |||
| @@ -48,13 +48,11 @@ SRC_URI += " \ | |||
| 48 | file://0030-policy-modules-kernel-files-add-rules-for-the-symlin.patch \ | 48 | file://0030-policy-modules-kernel-files-add-rules-for-the-symlin.patch \ |
| 49 | file://0031-policy-modules-system-logging-fix-auditd-startup-fai.patch \ | 49 | file://0031-policy-modules-system-logging-fix-auditd-startup-fai.patch \ |
| 50 | file://0032-policy-modules-kernel-terminal-don-t-audit-tty_devic.patch \ | 50 | file://0032-policy-modules-kernel-terminal-don-t-audit-tty_devic.patch \ |
| 51 | file://0033-policy-modules-services-rpcbind-allow-rpcbind_t-to-c.patch \ | ||
| 52 | file://0034-policy-modules-system-systemd-enable-support-for-sys.patch \ | 51 | file://0034-policy-modules-system-systemd-enable-support-for-sys.patch \ |
| 53 | file://0035-policy-modules-system-logging-allow-systemd-tmpfiles.patch \ | 52 | file://0035-policy-modules-system-logging-allow-systemd-tmpfiles.patch \ |
| 54 | file://0036-policy-modules-system-systemd-allow-systemd_logind_t.patch \ | 53 | file://0036-policy-modules-system-systemd-allow-systemd_logind_t.patch \ |
| 55 | file://0037-policy-modules-roles-sysadm-allow-sysadm-to-use-init.patch \ | 54 | file://0037-policy-modules-roles-sysadm-allow-sysadm-to-use-init.patch \ |
| 56 | file://0038-policy-modules-system-systemd-systemd-user-fixes.patch \ | 55 | file://0038-policy-modules-system-systemd-systemd-user-fixes.patch \ |
| 57 | file://0039-policy-modules-system-authlogin-fix-login-errors-aft.patch \ | ||
| 58 | file://0040-policy-modules-system-logging-grant-getpcap-capabili.patch \ | 56 | file://0040-policy-modules-system-logging-grant-getpcap-capabili.patch \ |
| 59 | file://0041-policy-modules-system-mount-make-mount_t-domain-MLS-.patch \ | 57 | file://0041-policy-modules-system-mount-make-mount_t-domain-MLS-.patch \ |
| 60 | file://0042-policy-modules-roles-sysadm-MLS-sysadm-rw-to-clearan.patch \ | 58 | file://0042-policy-modules-roles-sysadm-MLS-sysadm-rw-to-clearan.patch \ |
| @@ -72,6 +70,7 @@ SRC_URI += " \ | |||
| 72 | file://0054-policy-modules-system-setrans-allow-setrans_t-use-fd.patch \ | 70 | file://0054-policy-modules-system-setrans-allow-setrans_t-use-fd.patch \ |
| 73 | file://0055-policy-modules-system-systemd-make-_systemd_t-MLS-tr.patch \ | 71 | file://0055-policy-modules-system-systemd-make-_systemd_t-MLS-tr.patch \ |
| 74 | file://0056-policy-modules-system-logging-make-syslogd_runtime_t.patch \ | 72 | file://0056-policy-modules-system-logging-make-syslogd_runtime_t.patch \ |
| 73 | file://0057-Allow-services-to-read-tmpfs-under-run-credentials.patch \ | ||
| 75 | " | 74 | " |
| 76 | 75 | ||
| 77 | S = "${WORKDIR}/refpolicy" | 76 | S = "${WORKDIR}/refpolicy" |
diff --git a/recipes-security/refpolicy/refpolicy_git.inc b/recipes-security/refpolicy/refpolicy_git.inc index 80d92ac..4043005 100644 --- a/recipes-security/refpolicy/refpolicy_git.inc +++ b/recipes-security/refpolicy/refpolicy_git.inc | |||
| @@ -2,7 +2,7 @@ PV = "2.20240226+git" | |||
| 2 | 2 | ||
| 3 | SRC_URI = "git://github.com/SELinuxProject/refpolicy.git;protocol=https;branch=main;name=refpolicy;destsuffix=refpolicy" | 3 | SRC_URI = "git://github.com/SELinuxProject/refpolicy.git;protocol=https;branch=main;name=refpolicy;destsuffix=refpolicy" |
| 4 | 4 | ||
| 5 | SRCREV_refpolicy ?= "71f4bd1992e05bcd79dc5234f8a30deeb141aa3d" | 5 | SRCREV_refpolicy ?= "351a5a7f4dc959769aaa8fe47c6e77f94fe5b657" |
| 6 | 6 | ||
| 7 | UPSTREAM_CHECK_GITTAGREGEX = "RELEASE_(?P<pver>\d+_\d+)" | 7 | UPSTREAM_CHECK_GITTAGREGEX = "RELEASE_(?P<pver>\d+_\d+)" |
| 8 | 8 | ||
