VULN_CHECK_I913V6 ;ji4.ddlZddlZddlZddlZddlZddlZddlmZ ddlm Z ddl m Z ddlmZddlmZddlmZddlmZdd lmZdd lmZdad Zd Zd ZdZdZdZdZddZddZddZGddeZ dZ!dZ"dZ#dZ$y#e $re Z YmwxYw)N) rpcServer)DictType)rpclib)config) rhnserver) up2dateErrors) up2dateLog) up2dateUtils) statisticsz /var/spool/up2date/loginAuth.pklctj}|d}tj|tjsyt |d}|j }|j|S)N systemIdPathr)rinitUp2dateConfigosaccessR_OKopenreadclose)cfgpathfrets ?/usr/lib/python3.12/site-packages/up2date_client/up2dateAuth.py getSystemIdrsS  " " $C ~ D 99T277 # T3A &&(CGGI Jctj}t}d}||S tjj |dd}|j dd}|dvr|}|S|jd|d|d|S#t$r6|jd|jtjY|SwxYw) z Extract the preferred_interface parameter from system_id XML Returns 'IPv4' or 'IPv6' if specified, otherwise 'IPv4' as default IPv4rpreferred_interface)rIPv6z#Invalid preferred_interface value 'z' in system_id, defaulting to ''zGFailed to parse system_id XML, preferred_interface defaulting to 'IPv4') r initLogrr xmlrpclibloadsgetlog_me Exception log_exceptionsysexc_info)logsystemIdrparams cfg_interfaces rgetPreferredInterfacer/(s    C}H ""+!!''1!4Q7 #8&A "2 2"/  #" JJ(57JL #" + \]3<<>*  +s>A?%A??;B>=B>ctjjdrytj} t j jtddd}tj}|ds||k7rtj}|jjt|}|d}|d|jd}tj |tj"s tj$|tj |tj"sytj&j)|r|dz} tj*||tj,|tj.tj0ztj2ztj4ztj6zd} tj8|d } | j?|| j=yyy#YyxYw#YyxYw#YyxYw#t:$rtj<|wxYw#| j=wxYw) NLEAPP_IPU_IN_PROGRESSr os_releasechannelOverrider /z.savew) renvironr%rrrr#r$rr getVersionrRegistrationRhnServer registrationupgrade_versionrfindrW_OKmkdirrlexistsrenamerO_WRONLYO_CREATO_TRUNC O_NOFOLLOW O_CLOEXECfdopenr'rwrite) ridVer systemVers newSystemIdrdirsavePathfdrs rmaybeUpdateVersionrOLs zz~~-.  " " $C  &&{}5a8;LI '')I  !ey&8  ) ) +aNN22;=)Lk  d !$**S/ "c YYsBGG $ hhsmYYsBGG $  G^( iih' 774rzz1BJJ>NQSQ]Q]]_d ebiiC ! ''+  '')K'9 !     ((2,  '')s;0H<HH$H+2IHH!$H(+ I I ctj}|jdts|jdyt jtd}t j jt}t j|t js t j|d t j jtrt jtt jtt j t j"zt j$zt j&zt j(zd} t j*|dt j,|d}|5t3j4||d d d |d t7td z}|jd |d d|dy#|jd|zYyxYw#t.$rt j0|wxYw#1swYxxYw#t.$r|jd tzYywxYw)z Pickle loginInfo to a file Returns: True -- wrote loginInfo to a pickle file False -- did _not_ write loginInfo to a pickle file zwriteCachedLogin() invokedz1writeCachedLogin() loginInfo is None, so bailing.F)time loginInfoiz'Unable to write pickled loginInfo to %sr5r6NzUnable to write loginInfo to %srQX-RHN-Auth-Expire-OffsetzWrote pickled loginInfo at z with expiration of z seconds.T)r r" log_debugrRrQrrdirnamepcklAuthFileNamerr=r>r&r?unlinkrrArBrCrDrEfchmodrFr'rjsondumpfloat)r+datapcklDirrNpcklAuth expireTimes rwriteCachedLoginr`s    CMM./  IJIIK" $Dggoo./G 99Wbgg &  HHWe $ 77??+ , II& ' WW%[[2::- :R]]JR\\Y  IIb% yyS)H IIdH % fi0J&K LLJMM/f?U  % I  JJ@7J K.  HHRL  X  47GGHsO!G 8B)H*",G;H*H'H* G8; HH*H'#H**!I Ic tj}|jdtjt tj s|jdt zytt d} tj|}|j tjjt!ddd}d|d d z}||k7r|jd |d |y |d }|d }t#j"}|t%|dz}|jd|d|dt%|d||kDr|jd|d|dyt'||jd|y#ttf$r$|jd|jYywxYw#YxYw)zb Read pickle info from a file Caches authorization info for connecting to the server. zreadCachedLogin invokedz'Unable to read pickled loginInfo at: %sFrzSUnexpected EOF. Probably an empty file, regenerate auth filer system_idzID-%srRX-RHN-Server-Idzsystem id version changed: z vs rQrSz(Checking pickled loginInfo, currentTime=z , createTime=z, expire-offset=z)Pickled loginInfo has expired, created = z , expire = .z?? F? MM5&Q R  v,K k B))+KuR(B%CDDJMMct|tk(r/tttk(rtj|y|ayday)z, Update the global var, "loginInfo" N)typerrRupdate)rks rrhrhs6  Bx8  ?h &   R I rc,tj}|jd|z|stst rtSt j |}|dk(r t}|syt|jd|jj|tjt|tj }t#|t%tr|jdt'tt(rPt+d}tj-Dcic]\}}|||vr|nd} }}|jd| tS|jdt/tj0ztScc}}w) Nzlogin(forceUpdate=%s) invokedtimeoutzlogging into up2date serverz?successfully retrieved authentication token from up2date server)rczX-RHN-Auth-User-IdzX-RHN-Auth-Server-TimerSzX-RHN-Auth-Channelsz z logininfo:zlogininfo: )r r"rTrRrmr RhnServerrrOr&up2dateloginsocketgetfqdn_get_panel_namer count_server_usersrhr` isinstancedict frozensetitemsro__name__) r, forceUpdatersr+serverrk_SAFE_LOGIN_KEYSkvredacteds rrvrvs]    CMM1[AB y      1F4= JJ,-   &.."OC$8%%' B R ) *)T" %&  ") )1 Q** <)   lH-  04 ?3K3KKL  s1Fctj}|jdtd|tst j dtS)NzupdateLoginInfo() login infoT)rrszUnable to authenticate)r r"r&rvrRrAuthenticationError)rsr+s rupdateLoginInfor+sB    CJJ-. dG, //0HII rcn tatrtSt|tS#t$rdaY+wxYw)Nrr)rR NameErrorrvrrs r getLoginInfor5s;  '   s & 44c eZdZy)_FailedToGetPanelNameN)r __module__ __qualname__rrrrBsrrc t}|jS#t$rXts2|jt j |j dt}Y|jSwxYw)Nz?Failed to get panel name via cldetect, using fallback mechanism) _get_panel_name_via_cldetectr_is_cldeploy_runningr(r)r*r&_fallback_get_panel_namelower)r+ panel_names rryryFss013      !0$% C  s||~ . JJX Y-/    0s AA=<A=cd}d}d}tjj|r2t|5}|j j }ddd|rLd|z}tjj|r(t|5}d|j v}ddd|S|S#1swYYxYw#1swY|SxYw)Nz/var/lock/cldeploy.lckFz/proc/%s/cmdlinecldeploy)rrexistsrrstrip)lock_file_pathcldeploy_runningpidrpid_cmdline_paths rrrSs-N C ww~~n% . !Q&&(.."C" -3 77>>* +&'1#-#9 (  " ! ( sB( B4(B14B>c|ddgx\}}}tjj|std|zt j |tj tj d}|j\}}|jdk7r tddj|d ||jS) Nz/usr/bin/cldetectz--detect-cp-nameonlyz7Failed to obtain panel name because '%s' does not existT)stdoutstderruniversal_newlinesrz#Failed to obtain panel name using ' z' command; stderr: ) rrrr subprocessPopenPIPE communicate returncodejoinr)binary_cmdprocessrrs rrrds*,BCCIFA 77>>& !# E   s:??:??gklG((*NFFQ#xx}f &  <<>rctjjdrytjjdrytjjdrytjjdrytjjd ry tjjd ry y )Nz/usr/local/psa/admin/pleskz/usr/local/interworx/ interworxz#/usr/local/cpanel/whostmgr/docroot/cpanelz/usr/local/ispmgr/ispmgrz/usr/local/directadmin/ directadminz/usr/local/mgr5/sbin/mgrctlispmgr5unknown)rrisdirisfilerrrrrws ww}},- ww}},- ww}}:; ww}})* ww}}./ ww~~34 r)NFN)N)%rYrr)rQrwrup2date_clientrtypesr ImportErrorr|rhnrrrrr r r rRrVrr/rOr`rmrhrvrrr'rryrrrrrrrs $!$(%'%  5 H3l7r*X "1f  I  "&U HsB BB