Spamworldpro Mini Shell
Spamworldpro


Server : Apache/2.4.52 (Ubuntu)
System : Linux webserver 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 6 17:42:15 UTC 2 x86_64
User : www-data ( 33)
PHP Version : 8.1.2-1ubuntu2.21
Disable Function : NONE
Directory :  /lib/python3/dist-packages/uaclient/cli/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

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

���f�r�
@s
ddlZddlZddlmZmZmZmZmZmZm	Z	ddl
mZmZm
Z
mZmZddlmZmZddlmZddlmZmZddlmZmZddlmZmZmZmZdd	l m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4dd
l5m6Z6ddl5m7Z8ddl9m:Z:ddl9m7Z;dd
l<m=Z=m>Z>ddl?m@Z@mAZAddlBmCZCmDZDmEZEddlFmGZGddlHmIZIddlJmKZKddlLmMZMmNZNmOZOddlPmQZQddlRmSZSddlTmUZUddlVmWZWGdd�d�ZXdd�ZYdd�ZZde+fdd �Z[d!e-fd"d#�Z\d$e]d%e^d&eGfd'd(�Z_d$e]d%e^d)e^d&eGfd*d+�Z`	did,ee]d-e]d.ead/ead0ee]d1e]fd2d3�Zbd&eGd4e]d1e^fd5d6�Zcdjd7d8�Zdd&eGfd9d:�Zed&eGd1e^fd;d<�Zfd=ee]d1e]fd>d?�Zgd&eGd%e^d1e^fd@dA�Zhd&eGd1e^fdBdC�Zid&eGdDe]d1e^fdEdF�ZjdDe]d&eGd%e^d1e^fdGdH�Zk	Idkd-edJe]dKe]fdLdM�ZldNe]fdOdP�ZmdQeXdRe0fdSdT�ZndQeXdRe1fdUdV�ZodQeXdRe/fdWdX�ZpdQeXdRe$fdYdZ�ZqdQeXdRe%fd[d\�ZrdQeXdRe&fd]d^�ZsdQeXdRe*fd_d`�ZtdQeXdRe(fdadb�ZudQeXdRe'fdcdd�Zvd!e+d%e^d&eGd1eeeeffdedf�Zwdgdh�ZxdS)l�N)�Dict�List�
NamedTuple�Optional�Set�Tuple�Union)�apt�
exceptions�messages�system�util)�attach_with_token�enable_entitlement_by_name)�	_initiate)�MagicAttachRevokeOptions�_revoke)�MagicAttachWaitOptions�_wait)�CVE_OR_USN_REGEX�	FixStatus�UnfixedPackage�status_message)�ESM_APPS_POCKET�ESM_INFRA_POCKET�STANDARD_UPDATES_POCKET�FixPlanAptUpgradeStep�FixPlanAttachStep�FixPlanEnableStep�FixPlanNoOpAlreadyFixedStep�FixPlanNoOpLivepatchFixStep�FixPlanNoOpStatus�FixPlanNoOpStep�
FixPlanResult�FixPlanStep�FixPlanUSNResult�FixPlanWarning�"FixPlanWarningFailUpdatingESMCache�&FixPlanWarningPackageCannotBeInstalled�#FixPlanWarningSecurityIssueNotFixed�NoOpAlreadyFixedData�NoOpLivepatchFixData�USNAdditionalData)�CVEFixPlanOptions)�_plan)�USNFixPlanOptions)�ContractExpiryStatus�_is_attached)�NAME�
USAGE_TMPL)�CLOUD_TYPE_TO_TITLE�PRO_CLOUD_URLS�get_cloud_type)�UAConfig)�PRINT_WRAP_WIDTH)�entitlement_factory)�ApplicabilityStatus�CanEnableFailure�UserFacingStatus)�notices)�Notice)�
PRO_HOME_PAGE)�colorize_commandsc@sjeZdZdededeedefdd�Zdd�Z		dd
eedede	efd
d�Z
deedefdd�Zd	S)�
FixContext�title�dry_run�
affected_pkgs�cfgcCsJd|_g|_t�|_tj|_||_||_||_	||_
d|_d|_d|_
dS)NrTF)�	pkg_index�unfixed_pkgs�set�installed_pkgsr�SYSTEM_NON_VULNERABLE�
fix_statusrBrDrCrE�should_print_pkg_header� warn_package_cannot_be_installed�fixed_by_livepatch)�selfrBrCrDrE�rP�2/usr/lib/python3/dist-packages/uaclient/cli/fix.py�__init__Qs
zFixContext.__init__cCsR|jr'tj�t|j��jt|j�d�t|j��d�}tt	j
|tddd��dSdS)N�, )�count�pkgs�    F)�width�subsequent_indent�replace_whitespace)rDr�SECURITY_AFFECTED_PKGS�	pluralize�len�format�join�sorted�print�textwrap�fillr8)rO�msgrPrPrQ�print_fix_headerds"�����zFixContext.print_fix_headerN�source_pkgs�status�pocketcCs8|jrtt|||jt|j�|rt|�ndd��dSdS)N)�pkg_listrfrF�num_pkgs�
pocket_source)rLr`�_format_packages_messagerFr\rD�get_pocket_description)rOrerfrgrPrPrQ�print_pkg_headerus���zFixContext.print_pkg_headerrU�unfixed_reasoncCs"|D]}|j�t||d��qdS)N)�pkgrn)rG�appendr)rOrUrnrorPrPrQ�add_unfixed_packages�s

��zFixContext.add_unfixed_packages�N)�__name__�
__module__�__qualname__�str�boolrr7rRrdrrmrqrPrPrPrQrAPs(���
����
�rAcCs(|jdtjd�}|jtd�t|�dS)N�fix��help)�action)�
add_parserr�CLI_ROOT_FIX�set_defaults�
action_fix�
fix_parser)�
subparsers�
parser_fixrPrPrQr|�sr|cCs`tjtdd�|_d|_tj|_tj|j	_
|jdtjd�|jddtj
d�|jd	dtjd�|S)
z1Build or extend an arg parser for fix subcommand.z"fix <CVE-yyyy-nnnn+>|<USN-nnnn-d+>)�name�commandrx�security_issueryz	--dry-run�
store_true)r{rzz--no-related)r3r]r2�usage�progr�CLI_FIX_DESC�description�	CLI_FLAGS�
_optionalsrB�add_argument�
CLI_FIX_ISSUE�CLI_FIX_DRY_RUN�CLI_FIX_NO_RELATED)�parserrPrPrQr��s�
��r��cvecCs8dj|j��|jd�d�|j���g}td�|��dS)N�{issue}: {description}��issuer�z! - https://ubuntu.com/security/{}�
)r]rB�upperr�r`r^)r��linesrPrPrQ�print_cve_header�s��r��fix_plancCs�|j}dj|j��|jd�g}|j}t|t�rK|jr5|�	t
j�|jD]}|�	d�t
jj
j|d���q#n|jrK|�	t
j�|jD]	}|�	d|�qAtd�|��dS)Nr�r�z - {})r�z - r�)�target_usn_planr]rBr�r��additional_data�
isinstancer,�associated_cvesrpr�SECURITY_FOUND_CVES�urls�SECURITY_CVE_PAGE�associated_launchpad_bugs�SECURITY_FOUND_LAUNCHPAD_BUGSr`r^)r��
target_usnr�r�r��lp_bugrPrPrQ�print_usn_header�s*��

���
r�r�rCrEcCsztt|gd�|d�}|jjdj}|r$|jr$tjt�	|j
pd|j�d��t|jjd�t�t
|jjd||�\}}|S)N)�cves��optionsrEr�unexpected-error��	named_msg)�cve_planr-�	cves_datar��errorrcr
�AnonymousUbuntuProErrorr�NamedMessage�coder�r`�execute_fix_plan)r�rCrEr�r�rf�_rPrPrQ�fix_cve�s�
��r��
no_relatedcCs�tt|gd�|d�}|jjdjj}|r%|jr%tjt	�
|jpd|j�d��t|jjd�t
dt	jj|d��t|jjdj||�\}}|tjtjfvrO|S|jjdj}|rZ|r\|St
dt	jjd�d	d
�|D��d��t
dt	j�i}	|D]}
t
d�|
j��t|
||�|	|
j<t
�qzt
t	j�t||t	jd
�d}|D]=}
|	|
j\}}
t||
jt	jd
�|tjkr�t
dt	jjdd��d}|tjkr�|
D]}|j r�t
d�|j!|j ��q�d}q�|r�t
dt	j"j|d��|S)N)�usnsr�rr�r�r�)�issue_idz
- css�|]}|jVqdSrr)rB)�.0�usnrPrPrQ�	<genexpr>	s�zfix_usn.<locals>.<genexpr>)�related_usnsz- {})�contextF�- �
fix operation��	operationTz
  - {}: {})#�usn_planr/�	usns_datar�r�r�rcr
r�rr�r�r�r`�SECURITY_FIXING_REQUESTED_USNr]r�rrJ�SYSTEM_NOT_AFFECTED�related_usns_plan�SECURITY_RELATED_USNSr^�SECURITY_FIXING_RELATED_USNSrB�SECURITY_USN_SUMMARY�_handle_fix_status_message�FIX_ISSUE_CONTEXT_REQUESTED�FIX_ISSUE_CONTEXT_RELATED�SYSTEM_VULNERABLE_UNTIL_REBOOT�ENABLE_REBOOT_REQUIRED_TMPL�SYSTEM_STILL_VULNERABLErnro�SECURITY_RELATED_USN_ERROR)r�rCr�rEr�r��target_usn_statusr�r��related_usn_status�related_usn_plan�failure_on_related_usnrfrG�unfixed_pkgrPrPrQ�fix_usn�s��
�����������
�
��
���
�������r�rhrfrFrirj�returnc	Cs�|sdSg}g}|D]}|d7}|�d�||��|�|�q
tjd�dd�|�dd�t|���tdd	�}d
�|t||��S)z;Format the packages and status to an user friendly message.��z{}/{}z{} {}:�(rS�)rV�rWrXz{}
{})rpr]rarbr^r_r8r)	rhrfrFrirj�	msg_index�src_pkgs�src_pkg�
msg_headerrPrPrQrkGs ��rk�tokenc
Cs\ttdd|gg��z
t||dd�WdStjy-}zt|j�WYd}~dSd}~ww)ztAttach to an Ubuntu Pro subscription with a given token.

    :return: True if attach performed without errors.
    �pro�attachT)r��allow_enableNF)r`r@rr
�UbuntuProErrorrc)rEr��errrPrPrQ�_run_ua_attachcs
��r�cCs>t�\}}|t��vrttjjt�|�t�|�d��dSdS)z:Alert the user when running Pro on cloud with PRO support.)rB�cloud_specific_urlN)	r6r5�keysr`r�SECURITY_USE_PRO_TMPLr]r4�get)�
cloud_typer�rPrPrQ�*_inform_ubuntu_pro_existence_if_applicableqs
���r�c
Cs�ttj�t|d�}tdtjj|jd��t|jd�}zt	||d�}Wn t
jyD}zttj�t
|jd�}t||d�|�d}~wwtdtj�t||j�S)N)rEr�)�	user_code)�magic_tokenr�)r`r�CLI_MAGIC_ATTACH_INITr�CLI_MAGIC_ATTACH_SIGN_INr]r�rr�rr
�MagicAttachTokenError�CLI_MAGIC_ATTACH_FAILEDrr�CLI_MAGIC_ATTACH_PROCESSINGr��contract_token)rE�
initiate_resp�wait_options�	wait_resp�e�revoke_optionsrPrPrQ�_perform_magic_attach}s.

���
���	r�cCsht�ttj�tjtjgd�d�}|dkrdS|dkr t|�S|dkr2ttj�t	d�}t
||�SdS)	zZPrompt for attach to a subscription or token.

    :return: True if attach performed.
    )�s�a�c��
valid_choicesr�Fr�r��> T)r�r`r�*SECURITY_UPDATE_NOT_INSTALLED_SUBSCRIPTIONr
�prompt_choices�SECURITY_FIX_ATTACH_PROMPTr��PROMPT_ENTER_TOKEN�inputr�)rE�choicer�rPrPrQ�_prompt_for_attach�s
�

rrGcCs4t|�}tjtj�|�j|d�t|��d�t	dd�S)z�Format the list of unfixed packages into an message.

    :returns: A string containing the message output for the unfixed
              packages.
    rS)rirUrVr�)
r\rarbr�SECURITY_PKG_STILL_AFFECTEDr[r]r^r_r8)rG�num_pkgs_unfixedrPrPrQ�_format_unfixed_packages_msg�s���rcCs4t|�j}|r|tjjkr|rttj�dSdSdS)zuCheck if the Ubuntu Pro subscription is expired.

    :returns: True if subscription is expired and not renewed.
    FT)r1�contract_statusr0�EXPIRED�valuer`r�(SECURITY_DRY_RUN_UA_EXPIRED_SUBSCRIPTION)rErC�contract_expiry_statusrPrPrQ�_check_subscription_is_expired�s
�
rcCs�ddl}ddlm}t�ttj�tjtj	j
td�ddgd�}|dkrFttj�t
d�}ttd	d
gg��|�|jddd
�|�t||�SdS)zdPrompt for attach a new subscription token to the user.

    :return: True if attach performed.
    rN)�cli)�url�rr�r�rr��detachTr)�
assume_yesr]F)�argparse�uaclientrr�r`r�%SECURITY_UPDATE_NOT_INSTALLED_EXPIREDr
r�SECURITY_FIX_RENEW_PROMPTr]r?�PROMPT_EXPIRED_ENTER_TOKENrr@�
action_detach�	Namespacer�)rErrrr�rPrPrQ�_prompt_for_new_token�s"
�
�
r�servicecCs�ttjj|d��tjtjj|d�ddgd�}|dkrEttdd|gg��t||d�\}}|sC|durCt	|t
�rC|jdurCt|jj�|Sd	S)
zMPrompt for enable a pro service.

    :return: True if enable performed.
    �rr�r�r�r��enable�rEr�NF)
r`r�SECURITY_SERVICE_DISABLEDr]r
r�SECURITY_FIX_ENABLE_PROMPTr@rr�r;�messagerc)rErr�ret�reasonrPrPrQ�_prompt_for_enable�s"���
r(cCs�t||d�}|rN|��\}}|tjkrdS|��\}}|tjkrD|r0tdtj	j
|jd��dSt||j�r8dSttj
j
|jd��dSttjj
|jd��dS)zQ
    Verify if the Ubuntu Pro subscription has the required service enabled.
    r"Tr�r F)r9�user_facing_statusr<�ACTIVE�applicability_statusr:�
APPLICABLEr`r�'SECURITY_DRY_RUN_UA_SERVICE_NOT_ENABLEDr]r�r(�SECURITY_UA_SERVICE_NOT_ENABLED� SECURITY_UA_SERVICE_NOT_ENTITLED)rrErC�ent�
ent_statusr�r+rPrPrQ�)_handle_subscription_for_required_services<

�����
���r2r�r�r�cCs�|tjkr |rtjj||d�}ntjj|d�}tt�|��dS|tj	kr@|r0tj
j||d�}ntjj|d�}tt�|��dS|tjkr`|rPtj
j||d�}ntjj|d�}tt�|��dS|rktj
j||d�}ntjj|d�}tt�|��dS)N)r�r��r�)rrJr�%SECURITY_ISSUE_RESOLVED_ISSUE_CONTEXTr]�SECURITY_ISSUE_RESOLVEDr`r
�handle_unicode_charactersr��'SECURITY_ISSUE_UNAFFECTED_ISSUE_CONTEXT�SECURITY_ISSUE_UNAFFECTEDr��)SECURITY_ISSUE_NOT_RESOLVED_ISSUE_CONTEXT�SECURITY_ISSUE_NOT_RESOLVED)rfr�r�rcrPrPrQr�6s6
�
�
��r�rgcCs.|tkrtjS|tkrtjS|tkrtjS|Srr)rr�'SECURITY_UBUNTU_STANDARD_UPDATES_POCKETr�SECURITY_UA_INFRA_POCKETr�SECURITY_UA_APPS_POCKET)rgrPrPrQrl[srl�fix_context�stepcCsh|j|jjd|jjd�d|_tjj|jj|jj	d�}t
d|�|j|jjg|d�d|_
tj|_dS)N�released�rerfrgF)�package�versionr��rUrnT)rm�data�related_source_packagesrgrLr�FIX_CANNOT_INSTALL_PACKAGEr]�binary_package�binary_package_versionr`rq�source_packagerMrr�rK)r>r?�warn_msgrPrPrQ�)_execute_package_cannot_be_installed_stepfs ��
�rLcCsR|j|jj|jjd�|jt|jj�7_|j|jjt|jj�d�tj	|_
dS)N)rerfrD)rmrE�source_packagesrfrFr\rqrrr�rK�r>r?rPrPrQ�&_execute_security_issue_not_fixed_steps�
�rOcCs,t��rttj�dStdtjd�dS)Nr�)r
�we_are_currently_rootr`r�CLI_FIX_FAIL_UPDATING_ESM_CACHE�(CLI_FIX_FAIL_UPDATING_ESM_CACHE_NON_ROOTrNrPrPrQ�%_execute_fail_updating_esm_cache_step�srSc
Csh|j|jjd|jjd�|jt|jj�7_|jjs)|js#tt	j
�tj|_
dSt��sE|jsEtt	j�tj|_
|j|jjt	jd�dSttgd�gd�t|jj�g��|jratj|_
dSzt��tjgd�|jjddid	�Wn,ty�}z t|d
t|��}t|�tj|_
|j|jj|d�WYd}~dSd}~wwtj|_
d|_|j�|jj�dS)Nr@rArD)r	�updatez&&)r	�install�--only-upgrade�-y)zapt-getrUrVrW�DEBIAN_FRONTEND�noninteractive)�cmd�override_env_varsrcT)rmrErMrgrFr\�binary_packagesrMr`r�SECURITY_UPDATE_INSTALLEDrrJrKr
rPrC�SECURITY_APT_NON_ROOTr�rqr@r_r	�run_apt_update_command�run_apt_command�	Exception�getattrrvrLrIrT)r>r?r�rcrPrPrQ�_execute_apt_upgrade_step�sl�

��
����
�
����
rccCs�|jjdkrtnt}|j|jjd|d�d|_t|j�j	sD|j
r(tdtj
�nHt|j�sCtj|_|j|jjtjj|jjd�d�dSn,t|j|j
d�rp|j
rUttj�nt|j�sptj|_|j|jjtjj|jjd�d�dStj|_dS)	N�	esm-infrar@rAFr�r rD)rErC)rE�required_servicerrrmrMrLr1rE�is_attachedrCr`r� SECURITY_DRY_RUN_UA_NOT_ATTACHEDrrr�rKrq�SECURITY_UA_SERVICE_REQUIREDr]rrr�$SECURITY_UA_SERVICE_WITH_EXPIRED_SUBrJ�r>r?rgrPrPrQ�_execute_attach_step�sL���
���	�
��rkcCst|jjdkrtnt}|j|jjd|d�d|_t|jj|j|j	�s7|j
|jjtjj
|jjd�d�tj|_dStjS)Nrdr@rAFr rD)rErrrrmrMrLr2rErCrqr�%SECURITY_UA_SERVICE_NOT_ENABLED_SHORTr]rr�rKrJrjrPrPrQ�_execute_enable_steps0������rmcCs*|jjtjjkrttj�tj	|_
dSdSrr)rErfr!�NOT_AFFECTEDrr`r�SECURITY_NO_AFFECTED_PKGSrr�rKrNrPrPrQ�_execute_noop_not_affected_step&s
�rpcCs4t|jt�rttjj|j|jjd��d|_	dSdS)N)r�rCT)
r�rEr+r`r�CVE_FIXED_BY_LIVEPATCHr]rB�
patch_versionrNrNrPrPrQ�%_execute_noop_fixed_by_livepatch_step.s��
�rscCsLt|jt�r$|j|jjd|jjd�ttj�|j	t
|jj�7_	dSdS)Nr@rA)r�rEr*rmrMrgr`rr]rFr\rNrPrPrQ� _execute_noop_already_fixed_step;s�
�rtcCs�g|j�|j�}t|j||jpg|d�}|��t|dd�d�D]t}t|t�r,t	||�t|t
�r6t||�t|t�r@t
||�t|t�rRt||�|jtjkrRnCt|t�rdt||�|jtjkrdn1t|t�rvt||�|jtjkrvnt|t�r�t||�t|t�r�t||�t|t�r�t||�q t�|jr�ttt t!dd�|jD�����tj"|_|jtjkr�t#j$|j%d�r�tj&|_t'j(j)dd	�}t|�t*j+t,j-dd	�|j.s�t/|j|j�|j|jfS)
N)rBrCrDrEcSs|jSrr)�order)�xrPrPrQ�<lambda>Xsz"execute_fix_plan.<locals>.<lambda>)�keycSsg|]}|j�qSrP)ro)r�r�rPrPrQ�
<listcomp>|s��z$execute_fix_plan.<locals>.<listcomp>)rIr�r�)0�plan�warningsrArB�affected_packagesrdr_r�r(rLr)rOr'rSrrcrKrrJrrkrrmr"rpr rsrrtr`rGr�listrHr�r�
should_rebootrIr�rr�r]r=�addr>�ENABLE_REBOOT_REQUIREDrNr�)r�rCrE�	full_planr>r?�
reboot_msgrPrPrQr�Hs����

















���������r�cKsjt�t|j�stj|jd��|jrttj	�d|j�
�vr(t|j|j|�}|jSt|j|j|j
|�}|jS)Nr3r�)�re�matchrr�r
�InvalidSecurityIssueIdFormatrCr`r�SECURITY_DRY_RUN_WARNING�lowerr�r�r��	exit_code)�argsrE�kwargsrfrPrPrQr�s�
��rrr)r�N)r�)yr�ra�typingrrrrrrrrr	r
rrr
�uaclient.actionsrr�+uaclient.api.u.pro.attach.magic.initiate.v1r�)uaclient.api.u.pro.attach.magic.revoke.v1rr�'uaclient.api.u.pro.attach.magic.wait.v1rr�'uaclient.api.u.pro.security.fix._commonrrrr�/uaclient.api.u.pro.security.fix._common.plan.v1rrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,�+uaclient.api.u.pro.security.fix.cve.plan.v1r-r.r��+uaclient.api.u.pro.security.fix.usn.plan.v1r/r��(uaclient.api.u.pro.status.is_attached.v1r0r1�uaclient.cli.constantsr2r3�uaclient.clouds.identityr4r5r6�uaclient.configr7�uaclient.defaultsr8�uaclient.entitlementsr9�(uaclient.entitlements.entitlement_statusr:r;r<�uaclient.filesr=�uaclient.files.noticesr>�uaclient.messages.urlsr?�uaclient.statusr@rAr|r�r�r�rvrwr�r��intrkr�r�r�rrrrr(r2r�rlrLrOrSrcrkrmrprsrtr�rrPrPrPrQ�<module>s$
X?���
�l������
�
���
�,���
�%�
��
��
�	�
�>�
�/�
�!�
��
�
�
�
���
�R

Spamworldpro Mini