AnonSec Shell
Server IP : 209.38.156.173  /  Your IP : 216.73.216.122   [ Reverse IP ]
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux lakekumayuhotel 5.15.0-136-generic #147-Ubuntu SMP Sat Mar 15 15:53:30 UTC 2025 x86_64
User : root ( 0)
PHP Version : 8.1.2-1ubuntu2.22
Disable Function : NONE
Domains : 2 Domains
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/lib/python3/dist-packages/uaclient/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     [ BACKUP SHELL ]     [ JUMPING ]     [ MASS DEFACE ]     [ SCAN ROOT ]     [ SYMLINK ]     

Current File : /usr/lib/python3/dist-packages/uaclient/__pycache__/security_status.cpython-310.pyc
o

F��cAf�@s.ddlZddlZddlZddlZddlmZddlmZddlm	Z	ddl
mZddlm
Z
mZmZmZmZddlZddlmZddlmZdd	lmZdd
lmZmZddlmZmZddlm Z dd
l!m"Z"ddl#m$Z$ddl%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/dZ0Gdd�de�Z1Gdd�de�Z2e	dd�dd��Z3e	dd�dd��Z4dedeej5j6ffdd�Z7dej5j6de8fdd �Z9d!e8d"ee8e
fde8fd#d$�Z:d%eej5j6dee8eeej5j;e8fffd&d'�Z<d(edee8e
ffd)d*�Z=deee8e
ffd+d,�Z>d-d.�Z?d/ee8eeej5j;e8ffd"ee8e
fdeee8e
ffd0d1�Z@d(edee8e
ffd2d3�ZA	4	5dVd6ee8eej5j6fd7e8d8eBddfd9d:�ZCd;d<�ZDd=d>�ZEd?e8d@e8dAedBedCeFdDeFdEeBfdFdG�ZGgfdHeej5j6dIeej5j6fdJdK�ZHd(efdLdM�ZIdNdO�ZJdPdQ�ZKdRdS�ZLdTdU�ZMdS)W�N)�defaultdict)�Enum)�	lru_cache)�choice)�Any�DefaultDict�Dict�List�Tuple)�messages)�UAConfig)�ESM_APT_ROOTDIR)�ESMAppsEntitlement�ESMInfraEntitlement)�ApplicabilityStatus�ApplicationStatus)�
LIVEPATCH_CMD)�ProcessExecutionError)�status)
�REBOOT_PKGS_FILE_PATH�get_distro_info�get_kernel_info�get_platform_info�is_current_series_lts�is_supported�	load_file�
should_reboot�subp�which)�	esm-infra�esm-appsc@s eZdZdZdZdZdZdZdS)�UpdateStatusz2Represents the availability of a security package.�upgrade_available�pending_attach�pending_enable�upgrade_unavailableN)�__name__�
__module__�__qualname__�__doc__�	AVAILABLE�
UNATTACHED�NOT_ENABLED�UNAVAILABLE�r.r.�:/usr/lib/python3/dist-packages/uaclient/security_status.pyr!(sr!c@seZdZdZdZdZdS)�RebootStatus�yes�nozyes-kernel-livepatches-appliedN)r&r'r(�REBOOT_REQUIRED�REBOOT_NOT_REQUIRED�!REBOOT_REQUIRED_LIVEPATCH_APPLIEDr.r.r.r/r00sr0)�maxsizecCsTt�d}dd�|�fddd�|�fddd	�|�fd
dd�|�fddd�|�fd
iS)
N�series�Ubuntuz{}-security�standard-security�
UbuntuESMAppsz{}-apps-securityr �	UbuntuESMz{}-infra-securityrz{}-apps-updatesz{}-infra-updates)r�format)r7r.r.r/�%get_origin_information_to_service_map6s
�r=cCs,z	tjtd�}W|Styi}Y|Sw)N)�rootdir)�apt�Cacher
�	Exception)�cacher.r.r/�
get_esm_cacheBs��rC�return�strcCsFtt�}t��}dd�|D�}||d<|D]}|t|��|�q|S)NcSsg|]}|jr|�qSr.)�is_installed��.0�packager.r.r/�
<listcomp>Tsz4get_installed_packages_by_origin.<locals>.<listcomp>�all)r�listr?r@�get_origin_for_package�append)�resultrB�installed_packagesrIr.r.r/� get_installed_packages_by_originNsrQrIcCs~|jj}t|�dkr|jdus|j|jkrdS|jj}|D]}t��|j|jfd�}|tvr2|S|jdkr<|j	SqdS)a
    Returns the origin for a package installed in the system.

    Technically speaking, packages don't have origins - their versions do.
    We check the available versions (installed, candidate) to determine the
    most reasonable origin for the package.
    �N�unknown�r8�third-party)
�	installed�origins�len�	candidater=�get�origin�archive�ESM_SERVICES�	component)rI�available_originsr[�servicer.r.r/rM]s�

�rM�service_name�ua_infocCsP|dvs|dr||dvrtjjS|dstjjS||dvr$tjjStjjS)z�Defines the update status for a package based on the service name.

    For ESM-[Infra|Apps] packages, first checks if Pro is attached. If this is
    the case, also check for availability of the service.
    )r9�standard-updates�attached�enabled_services�entitled_services)r!r*�valuer+r,r-)rarbr.r.r/�get_update_status|s�
�rh�packagesc
Cstt�}t�}|D]{}|jr�|jD]?}||jkrPd}|jD]}t��|j	|j
f�}|r9||�||jf�d}nq|jd}|sPd|j
vrP|d�||jf�q|j
|vr�||j
}	|	jD]%}||jkr�|jD]}t��|j	|j
f�}|r�||�||jf�nqhq^q	|S)z�Filters a list of packages looking for available updates.

    All versions greater than the installed one are reported, based on where
    it is provided, including ESM pockets, excluding backports.
    FTr�	backportsrc)rrLrCrF�versionsrVrWr=rZr[r\rN�site�name)
rirO�	esm_cacherI�version�counted_as_securityr[r`�expected_origin�esm_packager.r.r/�filter_security_updates�sP



��
����





����rs�cfgcCs�dggd�}t|dd�}|dr?d|d<|dD]&}|dtvr>|dd	kr/|d
�|d�|ddkr>|d
�|d�q|S)z7Returns the Pro information based on the config object.F)rdrerfT)rt�show_allrd�servicesrm�entitledr1rfr�enabledre)rr]rN)rtrb�status_dictr`r.r.r/�get_ua_info�s��rzc	Cs�zttdddg�\}}WntygYSwzt�|�}Wntjy5d�|�}t�|�gYSw|�	d�}|rm|d�	d�}t
�j}|durm||krm|d�	di�}|�	d	d
�dkrm|�	dg�}d
d�|D�SgS)Nr�--format�json�)Could not parse Livepatch Status JSON: {}�Statusr�Kernel�	Livepatch�StaterT�applied�FixescSs&g|]}|�dd�|�dd�d��qS)�NamerT�Patched)rm�patched)rZ)rH�fixr.r.r/rJ�s
�
��z,get_livepatch_fixed_cves.<locals>.<listcomp>)rrrr|�loads�JSONDecodeErrorr<�logging�debugrZr�proc_version_signature_version)	�out�_err�livepatch_output�msg�status_list�lp_kernel_version�our_kernel_version�livepatch_status�fixesr.r.r/�get_livepatch_fixed_cves�s6�

�
���r�cCsdt�stjSztt�}WntytjYSw|��}t|�}d}d}|D]}t	�
||�r3|d7}q'||kr;tjStd�sBtjSztt
dddg�\}}Wnty_t�d�tjYSwzt�|�}Wntjy~d	�|�}	t�|	�tjYSw|�d
ig�}
t�}|j}d}
|
D]}|�d�}|r�||kr�|�d
i��dd�}
q�|
dkr�tjStjS)Nz^(linux-image|linux-base).*rrRzcanonical-livepatchrr{r|z Could not query Livepatch Statusr}r~rTrr�r�r�)rr0r4rr�FileNotFoundErrorr3�splitrX�re�matchrrrrr�r�r|r�r�r<rZrr�r5)�pkg_list_str�pkg_list�num_pkgs�kernel_regex�num_kernel_pkgs�pkgr��_�livepatch_status_dictr��patch_statuses�kernel_info�kernel_name�patch_state�patch_status�livepatch_kernelr.r.r/�get_reboot_statuss`
��
�

��

�	
�r��security_upgradable_versionscCsRg}|��D] \}}t||�}|D]\}}|�|jj|j||||jd��qq|S)N)rIrorarr[�
download_size)�itemsrhrNrIrmro�size)r�rb�updatesr`�version_listrror[r.r.r/�create_updates_listHs
���r�cCst|�}d|i}t�}|d}t|�|d<t|�}g|d<t||�}t|d�|d<t|d�|d<t|d	�|d
<t|d�|d<t|d
�|d<t|d�|d<t|d�|d<t|d�|d<t|d�|d<t|d�|d<t|d�|d<t�j|d<d||dt�id�S)agReturns the status of security updates on a system.

    The returned dict has a 'packages' key with a list of all installed
    packages which can receive security updates, with or without ESM,
    reflecting the availability of the update based on the Pro status.

    There is also a summary with the Ubuntu Pro information and the package
    counts.
    �uarK�num_installed_packagesrc�main�num_main_packages�
restricted�num_restricted_packages�universe�num_universe_packages�
multiverse�num_multiverse_packagesrU�num_third_party_packagesrS�num_unknown_packagesr�num_esm_infra_packagesr �num_esm_apps_packages�num_esm_infra_updates�num_esm_apps_updatesr9�num_standard_security_updates�reboot_requiredz0.1�
fixed_cves)�_schema_version�summaryri�	livepatch)rzrQrXrsr�r�rgr�)rtrbr��packages_by_originrPr�r�r.r.r/�security_status_dict`sB

�����r�rKF�
package_lists�
show_items�always_showc
CsZt|d�}ttjj|d��dtt|��d}|dvr;t|d�t|d�t|d�}ttjj||d	d
d��|dvrgt|d
�t|d�t|d�}|sU|rgttjj|||dkrad	nddd��|dvr�t|d�}|su|r�tj}|dkrtj}t|j||d��|dvr�t|d�}	|	s�|r�ttj	j||	|	dkr�d	ndd��td�dS)NrK)�count� rR)rKrr�r�r�s�Main/Restricted)�offsetr��plural�
repository)rKr r�r�r rT�Universe/Multiverse)rKrUrU)r�r�)rKrSrS)r�r�r�)
rX�printr�SS_SUMMARY_TOTALr<rE�SS_SUMMARY_ARCHIVE�SS_SUMMARY_THIRD_PARTY_SN�SS_SUMMARY_THIRD_PARTY_PL�SS_SUMMARY_UNAVAILABLE)
r�r�r��total_packagesr��packages_mr�packages_um�packages_thirdpartyr��packages_unknownr.r.r/�_print_package_summary�sh

�
����	

�
����	��r�cCsJt�d}t|�j}d�t|j�t|j��}ttj	j|d��td�dS)Nr7z{}/{}��daterT)
rr�eolr<rE�month�yearr�r�SS_INTERIM_SUPPORT)r7�eol_dater�r.r.r/�_print_interim_release_support�s


r�cCsFt�d}t|�rt|�j}ttjjt|j	�d��dSttj
�dS)Nr7r�)rrrr�r�r�SS_LTS_SUPPORTr<rEr��SS_NO_SECURITY_COVERAGE)r7r�r.r.r/�_print_lts_support�s


r�r`r��service_status�service_applicability�installed_updates�available_updates�is_attachedc
Cs�t�d}t|�j}|tjkr2tjj||t|j	�d�}	|r-|	tj
j||dkr(dndd�7}	t|	�n7tjj||t|j	�d�}	|rQ|	tj
j||dkrKdndd�7}	n|	d7}	t|	�|ri|tjkrittjj|d	��td�dS)
Nr7)r�r`r�rRrTr�)r�r�)r`r�r��.�r`)rr�eol_esmr�ENABLEDr�SS_SERVICE_ENABLEDr<rEr��SS_SERVICE_ENABLED_COUNTSr��SS_SERVICE_ADVERTISE�SS_SERVICE_ADVERTISE_COUNTSr�
APPLICABLE�SS_SERVICE_COMMAND)
r`r�r�r�r�r�r�r7�eol_date_esm�messager.r.r/�_print_service_support�s@
	

��
�
���r��package_list�reference_listc	Cs�d}dd�|D�}dd�|D�}|D]}||vr)|djtjj|tjjd�d7}q||d7}qtd�tj|d	d
d
d���td�|rF|n|}ttj	jt
|�d��dS)
NrTcS�g|]}|j�qSr.�rmrGr.r.r/rJ�z'_print_package_list.<locals>.<listcomp>cSr�r.rrGr.r.r/rJrz{bold}{package_name}{end_bold})�bold�package_name�end_boldr��
�PF)�width�break_long_words�break_on_hyphens)rI)r<r�TxtColor�BOLD�ENDCr��join�textwrap�wrap�SS_POLICY_HINTr)r�r��package_string�
package_names�reference_namesr�hint_package_listr.r.r/�_print_package_lists8���	���
rc	Cs�t|���d}t|���d}t|���d}t|���d}t�d}t�}t|�d}t�}t|d|d|d�d}	t|d|d|d	�d	}
t	|�t
tj�t
d
�|snt
|�rgt�t
tj�dS|tjkrvt�d
}|s|d}t
tjj|d��t
d
�tdd
||t|d�t|	�|d�|ds�|ds�|d	r�td	d||t|d	�t|
�|d�|s�t
tj�dSdS)Nrr7rdr�r�rr�r�r rTz NOT)�not_attachedr��r`r�r�r�r�r�r�r�)r�application_status�applicability_statusrrrrzrQrsr�r�r�SS_HELP_CALLrr��SS_NO_INTERIM_PRO_SUPPORTr�DISABLEDr��SS_IS_ATTACHEDr<r�rX�
SS_LEARN_MORE)rt�esm_infra_status�esm_infra_applicability�esm_apps_status�esm_apps_applicabilityr7�is_ltsr�r��"security_upgradable_versions_infra�!security_upgradable_versions_appsrr.r.r/�security_status8s�
�
��������



����
�
�r&cC�Tt�}|d}t|ddd�|r#ttj�td�td�t|�dSttj�dS)NrUT�r�r�rT�	Packages:)rQr�r�r�SS_THIRD_PARTYr�SS_NO_THIRD_PARTY)r��third_party_packagesr.r.r/�list_third_party_packages�s�
r-cCr')NrSTr(rTr))rQr�r�r�SS_UNAVAILABLEr�SS_NO_UNAVAILABLE)r��unknown_packagesr.r.r/�list_unavailable_packages�s�
r1c
	Cs8t�}|d}|d|d}||}t�}t|�d}|D]
\}}|�|j�qt�d}	t�}
t|���d}t|��	�d}t
|ddd�|
sXt|	�rQt�t
tj�dS|tjkrdt�t
d�tdd	||t|�t|�d
d�t
tjjdd��t
d�t|	�s�t
tjjdd��t
d
�t|t|��dSdS)Nrr�r�r7rTr(rTr�Frr�r))rQ�setrs�addrIrrrrrr�rr�r�rrrrr�r�rX�SS_SERVICE_HELPr<�SS_BOLD_PACKAGESrrL)
rtr��infra_packages�mr_packages�all_infra_packages�
infra_updatesr��updater�r7r#rr r.r.r/�list_esm_infra_packages�sV�

��

�	�r;c	Cst�}|d}|d|d}||}t�}t|�d}|D]
\}}|�|j�qt�}	t|���d}
t|���d}t	|ddd�|	sLt
tj�dSt
dd|
|t|�t|�dd	�t
tjjdd
��t
d�|r�t
tjjdd
��t
d�t|t|��dSdS)
Nr r�r�rTr(r�Frr�rTr))rQr2rsr3rIrrrrr�r�rrr�rXr4r<r5rrL)rtr��
apps_packages�um_packages�all_apps_packages�apps_updatesr�r:r�r#r!r"r.r.r/�list_esm_apps_packages�sH���
�	�r@)rKF)Nr|r�r�r�collectionsr�enumr�	functoolsr�randomr�typingrrrr	r
r?�uaclientr�uaclient.configr�uaclient.defaultsr
�uaclient.entitlementsrr�(uaclient.entitlements.entitlement_statusrr�uaclient.entitlements.livepatchr�uaclient.exceptionsr�uaclient.statusr�uaclient.systemrrrrrrrrrrr]r!r0r=rCrI�PackagerQrErMrh�Versionrsrzr�r�r�r��boolr�r�r��intr�rr&r-r1r;r@r.r.r.r/�<module>s�0


�
�
�;$F��
�
�8����
�?	������
�0�
�

�$J6

Anon7 - 2022
AnonSec Team