This is a weird one. I'm administering a FreePBX server using their standard CentOS 7 based distribution running in a virtual machine.
Every so often (usually a few months in between occurrences), the dashboard or User Control Panel (UCP) will stop working. If you check the browser console you will see strange JS errors. If you click on the file that's throwing the error, you see it going along fine until maybe half way through, and then there's a section of completely garbled text (example below).
The strange part is that when I check the file on the server, it's totally normal (no garbled text). So, somehow, during transmission, the file is messed up between the server's disk and the client's browser. I can even curl
the file locally from the server and it's served properly.
I have tried restarting httpd (apache2) and the UCP service with no effect. I have tried multiple browsers and completely disabling caching, so it's not a client side cache issue. The only solution I have found is a complete reboot of the FreePBX server.
Unfortunately, I can't predict when it will happen again, so I can't test theories in real time. But, if you have any suggestions, I'll save a link to this question and check it the next time it happens.
What the problem looks like:
...
if (isCanvasSupported) {
this._eventManager.ghostCtx.beginPath();
this._eventManager.ghostCtx.rect(plotArea.x1, plotArea.y1, plotArea.width, plotArea.height);
this._eventManager.ghostCtx.clip();
}
for (var j = 0; j < plotUnit.dataSeriesIndexesR¡ÑÀà~àxñÀ…àÊ †��U0FüÏs€�Ĺ{1£R£ÑÀà~ñÀf
üv�Ýð²Ïÿå?
mx� €�ij‘Á¸íQ€‰áÏp��0ÕOü/(N ©pî
��Ù&N÷îüñÀ
/ü�Û(wFïÿHuvï%†Ahpðå¦Y&—J$@�Ép¯ü
¹—‹¸·ˆpí&†
@¦¦Ø-üàxñÀáÅ¢`�uÏq€�ø "Œ!à òxqÊ ¡�ÄáÿÊ!A
üàx s��Ú3zÏq€�t³¸xa€ƒ8`à•x@ lÁ¸à�£àxÏr€�lð"�ê# ��Û
ðRhUzÇr€�t³"Ì�A„ã:bA¤íà~ñÀ6 /ü¸rw(u�Þ
'€€�Ĺ4�ðFý~Èqé��÷A(PuÿÜÌ%“óõ#‘Á¹Ù €Ïp��10‘Oü8�ð
ýÈqé��ùA(PuÿÜÌ%“òõ#‘Á¹Ý P€Ïp��20UOüL%�€Ì&"ØâÿÀxüàxñÀšüuºïü(v€æÌ "€¸âÿÊ Bé�ü¸Çp€�Ì" C àd ñÀÏp€�ø!€@€ A €áÊ ��<0ôAü&" é‘�Ïp��60ÝOüÏs �� ƒ!!�
S�;ƒážààÏÑÀà~ñÀáÅÏq€�øAu‚Ð���€�¢–Ïÿº¯ü©pe�üñÀæÏûáÀÏv€�ø¡†w"…Š Ã/qÊ B
"�Ê!Â��J
�épÂ
��Àú¯ü‹pƒè©peðÏp �� €�ÙñpÊ!o�€áÊ Á ¦Ïp€�œ�€€à��Á@&�¶
©r…q�f��!…$xqÊ ‚��N0Bü> �…Œ ÿÊ ��z0ð�Aü¸Cp…nïÿ�Ù&…!yÂy#¥'…¥‘á¸Ê ��_0À�Aü�èÏp��`0±�Oü…èð(p €ÿéá€@%�çéqbïü�Úè†"€; �„Aïû¡À©p* �éq“ñàxÏr€�ø�Ûðk@ V"Á™aX`> †ã ¹†D�Ïã±÷�ÙÏp€�ø²: Ïs€�8³“ÿÜ ¸³V"Ãc¢Ïp€�`³¢@"��¢U"@¢b¢(s ðkxX`Ž 2 3 4 ã󔀆¢‡¢*¢eààÏàxñÀ¯ÿ
Ø
Øj ïÿ�ÙÑÀà~ñÀ2ÏûpÏv€�ø�†Ý&€â€éG‘
�B† �H€ê! àzïü©rÏp€�Ì' �†J �
qÿÞ¾
¯ÿ
Øïÿ
p"€! €AÏr �� [‚€–"�z€âÊ%) Ïp€�Ĺ
€äèïû©pñÀ¶
Ïû
%�(vÊ ��A0DüÏp€�ø€è�€èÏp��C0-ü…è
Ïü�Ø¥¥…è
ïüÉq�Ø¥ÿØÕïû¥Ïr€�øè"€&¢�€ðÿØ¢�Ø¢Ïp �� €¢à ¢àxñÀáÅÏq€�ø£€åÊ ��:0Èü�…¡©pªïýÙ•€¸µ�Ø�¥}ïû©pàxñÀèÏr€�ød‚ë ƒéÏp��80ü�£¢ð ¹'°¢�€
è'÷ €Ïp��J0müÑÀà~ñÀ¾ÏûÿÞ�ÝÉwðå¯}9
ž �©pð©v @�uè/*�N"„)Ïr€�)0"Bã
P‡âÊ'AîññvÊ ‚��ÿ�Ì&Ì'ò0Ù¾Ô~Ïp€�̹f ¦XÙ¿ôø` ±ÏûàxñÀ¦ ü¢ÿÑÀà~àx¸Çp€�Ì' �Ù% à& àx C�R�
”�ð@*ƒya0púÏÿà(pàxñÀy"‚�+
Q�c€ëB€
»zb–"�"z?ºR"€Ê ��'0xü" $ð\ˆE
’�b€ ðE€
º[cb ðù“!Â�
R�÷„ð���byA)ÀR �€ò „���Ïp��$0-üÑÀà~ñÀ~Ïû�ÝÏp€�Ĺ-€©w
ð‘¸x� Ž€�ȳ
ïü©p †é)€�wÀ}Ê'$€�Ò�‘žíæñ€åÊ%A(vìñ‘ÏûñÀ&ÏûÏq �� Û�Ù B�Y ?”] žÏq€�Ĺð$€&¥ …$í3•ý ƒf…@€õ€d…B€zbD¥”!c•å€
¿h…
»[câ{Â{ R�âzD¥OÁ
ƒ¬¹3µÞñ €(¹/y áÊ †��f0Hü”žª¸´Ïr€�œ�‚a¸�¢Ïp€�ø¹Ž
ÏüåÏûñÀÏq€�Ĺmð`ƒ7ë3“ý ƒ#“ Dƒ � R�Ïq€�'IR"�ºYaDê�Ù
ðÏp��k0ÙüC‚"Eƒ„ƒ
º\dHƒ
ºšbYaÇq���q ÏÿÏp��c0üÑÀà~àxñÀò ïûÙªÁ:pJ � ~ ïý‹p…Àv ïýÙ
rð5jÇq€�ÌQ�ejq|ôƒp` &% âß
Ïp€�Ĺ̀
u"ð–?^–ìŽÞ«¸¶ Ð#op ƒé€è5oÇq€�ÌeF@&�zb’¯ü*q%ÍÀ†àî
@#ð/(AN ‚Hp"
ïÿÙ%öíïûªÀñÀ: Ïû�Ý
€/€�ij©sð@+!���ÿTkTz� € # ,B0â@ !Ya! )k$°ãÙˆ„/��ÿÿÏp€�Ä»uXƒÏw€�Ĺ�Þ ð2n4yo8`nïýÙæ󑧮§@ �!§B'�ïû§àxñÀ�ÙÏt€�ø„(rð`€qhpè'âõ €Ïp��x09ü„qPÜÌ"ƒÊ ‚��y0 üÑÀà~ñÀrÏûtÏu€�Ì@%ð/*N"ƒo{Ukºbæ‚$Ì?gæ¢ôì/(�N ¹ fxŒ €È÷º��€àÐ
aÿÊ ¡‰�ÏûÏq€�à¸xà�aàxñÀ„àÊ †��‚0¨üÏq€�ܸx�aÑÀà~ñÀî¯ûJ%��¨uðJ%@�åU
ž �©p˜pÿØøpï�Š }Ïv€�)Øp0&@Š ×ámÏU‘n �épÀ/¾0&A @Ì ×õçðñÆ ¨péûàxÏp€�´€‚àØà �àx2h4y�!€€�Øà~àxñÀq�Ø…áÊ †��0ì�üsðÏt€�ÜRkTzDd�Ú"B�„z€âÊ ãpèÑÀà~àxáÅ�ÜÏq€�´@! @!ðŠ ÿ!
�¥äõT‘�ÜðŠ ÿ#
�¥äõ‘�Û ðŠ$ÿkxX`€ ãõØ¡ÚH¡R¡Ø¡T¡àÁÅàxz
5�ÙºTzÏs€�ØBc €�(pðØà~ñÀx…àÊ †��0,�ü‚ýÑÀà~àxñÀqŠ ÿ…áÊ †��0�ü�ÜðRlTzÇr€�´j‚ N�‚ä
Œ ÿóóÑÀà~ñÀ…àÊ †��a�ÔæûÀ(æ&ýxÑÀà~àxñÀx„àÊ †�� 0´ÆûÞÏýÑÀà~àxñÀ„àÊ †��0˜ÆûÂÏýxÑÀà~àxáÅ�ÚÏs€�´U£Hqðá? ixx`‰€Œ$ÿŸøó
€vè/,N$„-Ït€�)0$L
âU£�Ø @íñàÁÅàxñÀáÅÏu€�|ìH³Ïp€�¤AÀÏp€�lBÀÏp€�tCÀØDÀ�ØÙÚÛ
$€€�|
%€€�PJ&€Ž øpÏq��À¶à©p�Øroýq¥¯û¥Ààxà~àxà~àxà~àxÙÏp ��= à~Ïp��Þà~Ïq€�Dsà¡+ÈÇp€�g ˆá ¨�ˆR�Š �Ï°ŠØ¸ðŠ �Ï°Bؘ¸à~ñÀØ
à�ÙØÏq �€¡ €�øÿÿ¡Ïp€�0iˆÏq ��(‚àØÀx¸ƒ¸¸… ’�¡ ïûØÑÀà~àxñÀ~û„(�!€€��)(��!€��*@!@!@! Q&À€Š"�Ê"!�B„��ÝðÏw€�”¯gÉ€ëcd~tÄ{/+Á�N#ŽËdpªåW
é€Ïs€�ŒªcÏt€�$’D/*ÁN"ŽÎd�$BÀªÕä~/.N&îdȪ«Þ€h€†åÓ#¦�/+Á�N#ŒÏs€�À‹cÕñ�Ýði€ém€åÊ'AîfÄ{ÔÄ{/+Á�N#ŽËdpªå]
•I€Ïv€�¨«fÏt€�$’dz/+�N#ëd�'O`¯udz/*�N"ƒkd@$ºbfª§Þ€h€€åÓ#¡�/+Á�N#ŒÏs€�À‹cÓñ�Ûð(€Ïr€�¼jb�%Ì�Dy/)A�N!‚Ïq€�ÀIa㠬݉ûñÀ"û¶ÀÊàuÏq€�ØHí€àØ!áÙ!b ð€àØ!aÌ b€Õ!bÏp€�Ø@�€MžÏp¥��d€@ÚD �ÜðaÏr¦��€•z ¢äÒä¹÷R‚�S�—i…yÏt¤��@E¤&¤d Ïq€�x[
‰à
© ûñÀ’
û
€/€�eturn animationInfo;
}
Chart.prototype.renderArea = function (plotUnit) {
var ctx = plotUnit.targetCanvasCtx || this.plotArea.ctx;
var totalDataSeries = plotUnit.dataSeriesIndexes.length;
if (totalDataSeries <= 0)
return;
var ghostCtx = this._eventManager.ghostCtx;
var axisXProps = plotUnit.axisX.lineCoordinates;
var axisYProps = plotUnit.axisY.lineCoordinates;
var markers = [];
var markerPropsColor = null;
var plotArea = this.plotArea;
var previousNotNullDataPoint, currentDataPoint;
ctx.save();
...
Update
It happened again today. This time, there was a bit of readable text sprinkled throughout the garbled section:
this.require.v�������00o’âU��@-Ö����������������������������������������������������������¨\%�����X��������������������ˆ‰’âU�����������������/usr/lib64/php/modules/soap.so��1�������/usr/lib64/php/modules�soap.so����������¡��������‰’âU��€9o’âU�� ll’âU��ÀUn’âU���à°å��ð4p’âU��ù°å��Èä°å��˜ù±å�����������‰’âU��€9o’âU�� ll’âU��ÀUn’âU���à°å��Èä°å��ð4p’âU��˜ù±å��ù°å��á�������������������������������������������������������£jŽÊ��à‹L����jŽÊ��fjŽÊ��ui ����AjŽÊ��•jŽÊ��°Êô����jŽÊ��‡jŽÊ��·Çô����jŽÊ��}jŽÊ��ii
����AjŽÊ��fjŽÊ��ui ����,jŽÊ��rjŽÊ��”‘–����AjŽÊ��a��������������00o’âU��������������������������������������������������������������������������‘�������²å��¨7p’âU��8Av’âU��¨-|’âU��è2o’âU��8§ƒ’âU��˜‰’âU��¸‰’âU��½‰’âU��¨ó‰’âU��ü‰’âU��¨;Š’âU������������������������������������������a�������8‹^1����������°‰’âU���������� ‰’âU��Љ’âU������������������˜‰’âU��soap������������±�������¨���š-3������������������������c“Ê��ଳÊ��`OÊ��`¿ŽÊ��оŽÊ���������� ÉŽÊ���������������������������������������������������������‰’âU��/�������h“Ê�����������[���w“Ê�������������������������������� ³Ê��ðÉŽÊ��°‰’âU����������|�������@k’âU��m4iÜÙy1@ëšgý�� ���������������h†”Ö��`W=ä��¨�������8‹^1���¨�������P‰’âU��€–Ö��¬A ä��Àêšgý��p¥å��8�������CVÖ��/\äÔ¨����������@ëšgý��Q�������nÝÔÚÜp�B�������°‰’âU����������0‰’âU��`=v’âU��àÝ…’âU����������èþ\Ä�����������[���Ž“Ê�������������������������������àœ³Ê��`ÊŽÊ��°‰’âU����������|�������@k’âU��m4iÜÙy1@ëšgý�� ���������������h†”Ö��`W=ä��¨�������8‹^1���¨�������P‰’âU��€–Ö��¬A ä��Àêšgý��p¥å��8�������CVÖ��/\äÔ¨����������@ëšgý��1�������/usr/lib64/php/modules/sockets.so�������Á�������àlÊ��°‰’âU��ð-ŽÊ��G‰’âU���‰’âU��à‰’âU����������P‰’âU����������ð-ŽÊ��Ð.ŽÊ��À.ŽÊ����������€.ŽÊ��.ŽÊ���/ŽÊ��/ŽÊ�� /ŽÊ�� .ŽÊ��°.ŽÊ��.ŽÊ�� .ŽÊ���.ŽÊ������������������������������������������à.ŽÊ������������������ð.ŽÊ����������0.ŽÊ��P.ŽÊ��@.ŽÊ��`.ŽÊ������������������������������������������@/ŽÊ��0/ŽÊ����������������������������������`/ŽÊ������������������������������������������������������������������P/ŽÊ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������p.ŽÊ��@àlÊ�� mÊ��������ð‰’âU���������H‰’âU������������������‰’âU����������������âlÊ��âlÊ��LàlÊ�����@�������������������������ÎôlÊ�� ‰’âU���àlÊ��À4ŽÊ���nÊ��˜‰’âU��²å�������������������������8‰’âU��˜‰’âU�����������ý������[¨��������������������Љ’âU��À‰’âU��
����������������������������������������������ÈìlÊ���������Èä°å��p1ä����������������������������������������������������������ˆ5!�����x��������������������h‰’âU�����������������/usr/lib64/php/modules/sockets.so���������������1�������/usr/lib64/php/modules�sockets.so�������A�������à‰’âU��Èä°å��˜ù±å����������à‰’âU��Èä°å��˜ù±å��±�������������������������������������������������������ÂôlÊ��ui ����nôlÊ��¸ôlÊ��ii
����nôlÊ��ôlÊ��•‘–����nôlÊ��¡ôlÊ��ti ����nôlÊ��–ôlÊ��”‘–����nôlÊ��a��������������00o’âU��������������������������������������������������������������������������a�������•~ìŠç��������€‰’âU����������@M‰’âU��P‰’âU������������������h‰’âU��sockets���������±�������¨���š-3������������������������¢ÖmÊ��À'ŽÊ��!mÊ��€!mÊ����������@!mÊ��!mÊ�����������������°4ŽÊ���!mÊ������������������������à‰’âU��0�������ªÖmÊ��Q�������,U‡¦m¾�������€‰’âU����������€‰’âU��`‰’âU������������������@ÿ\Ä�����������[���ºÖmÊ�������������������������������€"ŽÊ��@;mÊ��€‰’âU����������|�������@k’âU��m4iÜÙy1@ëšgý�� ���������������h†”Ö��`W=ä��¨�������•~ìŠç�¨������� ‰’âU��€–Ö��¬A ä��Àêšgý��p¥å���������CVÖ��/\äÔ¨����������@ëšgý��Q�������!½Z£‚¦m¾�������Љ’âU����������Ð ‰’âU��0‰’âU��@~ƒ’âU����������˜ÿ\Ä�����������[���ÈÖmÊ�������������������������������"),d.setAttribute("id",this.internal.flash.id),d.setAttribute("name",this.internal.flash.id),d.setAttribute("data",this.internal.flash.swf),d.setAttribute("type","application/x-shockwave-flash"),
Another corruptions showed up this same day, and this one looks like PHP array syntax.
Code that looks like this is found in several copies of the same PHP file spread throughout the FreePBX codebase. They are all from libphonenumber-for-php
. An example path is: /var/www/html/admin/modules/vqplus/vendor/giggsey/libphonenumber-for-php/src/geocoding/data/zh/86155.php
function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e,i,s=t[0]/255,n=t[1]/255,o=t[2]/255,a=t[3],r=Math.max(s,n,o),l=Math.min(s,n,o),h=r-l,c=r+l,u=.5*c;return e=l===r?0:s===r?60*(n-o)/h+360:n===r?60*(o-s)/h+120:60*(s-n)/h+240,i=0===h?0:.5>=u?h/c:h/(2-c),[Math.round(e)%360,i,u,null==a?1:a]
},c.hsla.from=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,nu 861552657 => 'å‰æž—çœå‰æž—市',
861552658 => 'å‰æž—çœå››å¹³å¸‚',
861552659 => 'å‰æž—çœå››å¹³å¸‚',
861552660 => 'å‰æž—çœé€šåŒ–市',
861552661 => 'å‰æž—çœé€šåŒ–市',
861552662 => 'å‰æž—çœé€šåŒ–市',
861552663 => 'å‰æž—çœé•¿æ˜¥å¸‚',
861552664 => 'å‰æž—çœé•¿æ˜¥å¸‚',
861552665 => 'å‰æž—çœé•¿æ˜¥å¸‚',
861552666 => 'å‰æž—çœé•¿æ˜¥å¸‚',
861552667 => 'å‰æž—çœé•¿æ˜¥å¸‚',
861552668 => 'å‰æž—çœç™½åŸŽå¸‚',
861552669 => 'å‰æž—çœç™½åŸŽå¸‚',
86155267 => 'å‰æž—çœå»¶è¾¹æœé²œæ—自治州',
86155268 => 'å‰æž—çœé•¿æ˜¥å¸‚',
861552690 => 'å‰æž—çœè¾½æºå¸‚',
861552691 => 'å‰æž—çœè¾½æºå¸‚',
861552692 => 'å‰æž—çœç™½å±±å¸‚',
861552693 => 'å‰æž—çœç™½å±±å¸‚',
861552694 => 'å‰æž—çœç™½åŸŽå¸‚',
861552695 => 'å‰æž—çœç™½åŸŽå¸‚',
861552696 => 'å‰æž—çœç™½å±±å¸‚',
861552697 => 'å‰æž—çœæ¾åŽŸå¸‚',
861552698 => 'å‰æž—çœæ¾åŽŸå¸‚',
861552699 => 'å‰æž—çœæ¾åŽŸå¸‚',
8615527 => '湖北çœæ¦æ±‰å¸‚',
86155280 => 'å››å·çœæˆéƒ½å¸‚',
86155281 => 'å››å·çœæˆéƒ½å¸‚',
86155282 => 'å››å·çœæˆéƒ½å¸‚',
86155283 => 'å››å·çœæˆéƒ½å¸‚',
86155284 => 'å››å·çœæˆéƒ½å¸‚',
86155285 => 'å››å·çœç»µé˜³å¸‚',
861552860 => 'å››å·çœå—充市',
861552861 => 'å››å·çœå—充市',
861552862 => 'å››å·çœé›…安市',
861552863 => 'å››å·çœé›…安市',
861552864 => 'å››å·çœé›…安市',
861552865 => 'å››å·çœé›…安市',
861552866 => 'å››å·çœå·´ä¸å¸‚',
861552867 => 'å››å·çœå·´ä¸å¸‚',
861552868 => 'å››å·çœèµ„阳市',
861552869 => 'å››å·çœèµ„阳市',
861552870 => 'å››å·çœå®œå®¾å¸‚',
861552871 => 'å››å·çœå®œå®¾å¸‚',
861552872 => 'å››å·çœå®œå®¾å¸‚',
861552873 => 'å››å·çœå®œå®¾å¸‚',
861552874 => 'å››å·çœå®œå®¾å¸‚',
861552875 => 'å››å·çœä¹å±±å¸‚',
861552876 => 'å››å·çœä¹å±±å¸‚',
861552877 => 'å››å·çœä¹å±±å¸‚',
861552878 => 'å››å·çœä¹å±±å¸‚',
861552879 => 'å››å·çœæˆéƒ½å¸‚',
861552880 => 'å››å·çœå—充市',
861552881 => 'å››å·çœå—充市',
861552882 => 'å››å·çœå—充市',
861552883 => 'å››å·çœå—充市',
861552884 => 'å››å·çœå—充市',
861552885 => 'å››å·çœå—充市',
861552886 => 'å››å·çœèµ„阳市',
861552887 => 'å››å·çœè¾¾å·žå¸‚',
861552888 => 'å››å·çœè¾¾å·žå¸‚',
861552889 => 'å››å·çœç”˜åœè—æ—自治州',
861552890 => 'å››å·çœé›…安市',
861552891 => 'å››å·çœé›…安市',
861552892 => 'å››å·çœå·´ä¸å¸‚',
861552893 => 'å››å·çœå·´ä¸å¸‚',
861552894 => 'å››å·çœå·´ä¸å¸‚',
861552895 => 'å››å·çœå®œå®¾å¸‚',
861552896 => 'å››å·çœå®œå®¾å¸‚',
861552897 => 'å››å·çœå®œå®¾å¸‚',
861552898 => 'å››å·çœå®œå®¾å¸‚',
861552899 => 'å››å·çœå®œå®¾å¸‚',
86155290 => '陕西çœè¥¿å®‰å¸‚',
861552910 => '陕西çœå’¸é˜³å¸‚',
861552911 => '陕西çœå»¶å®‰å¸‚',
861552912 => '陕西çœæ¦†æž—市',
861552913 => '陕西çœæ¸å—市',
861552914 => '陕西çœå•†æ´›å¸‚',
861552915 => '陕西çœå®‰åº·å¸‚',
861552916 => '陕西çœæ±‰ä¸å¸‚',
861552917 => '陕西çœå®é¸¡å¸‚',
861552918 => '陕西çœå®é¸¡å¸‚',
861552919 => '陕西çœé“œå·å¸‚',
86155292 => '陕西çœè¥¿å®‰å¸‚',
86155293 => '陕西çœè¥¿å®‰å¸‚',
86155294 => '陕西çœè¥¿å®‰å¸‚',
86155295 => '陕西çœè¥¿å®‰å¸‚',
86155296 => '陕西çœè¥¿å®‰å¸‚',
86155297 => '陕西çœæ¦†æž—市',
86155298 => '陕西çœæ¦†æž—市',
86155299 => '陕西çœæ¦†æž—市',
86155300 => '河北çœé‚¯éƒ¸å¸‚',
86155301 => '河北çœçŸ³å®¶åº„市',
86155302 => '河北çœä¿å®šå¸‚',
861553030 => '河北çœå¼ 家å£å¸‚',
861553031 => '河北çœå¼ 家å£å¸‚',
861553032 => '河北çœå¼ 家å£å¸‚',
861553033 => '河北çœå¼ 家å£å¸‚',
861553034 => '河北çœå¼ 家å£å¸‚',
861553035 => '河北çœå”山市',
861553036 => '河北çœå¼ 家å£å¸‚',
861553037 => '河北çœå¼ 家å£å¸‚',
861553038 => '河北çœå¼ 家å£å¸‚',
861553039 => '河北çœå¼ 家å£å¸‚',
86155304 => '河北çœæ²§å·žå¸‚',
86155305 => '河北çœå”山市',
86155306 => '河北çœå»ŠåŠå¸‚',
86155307 => '河北çœæ²§å·žå¸‚',
86155308 => '河北çœå”山市',
86155309 => '河北çœé‚¢å°å¸‚lass:function(e,i,s,n,o){return t.effects.animateClass.call(
This is interesting clue. It makes me think that somehow this JS file is being processed by PHP and PHP is misbehaving and printing some of its configuration. Any ideas on what I should look into next?
Update 2
Sorry for posting so many updates, but this is an interesting turn of events. I tried reinstalling the ucp module using: fwconsole ma downloadinstall ucp
After I did that, I got a new corruption, this time with python code being injected into the file. It looks like that code has to do with yum in someway. My new theory is that somehow random chunks of whatever is in recent server memory are being injected into the files.
This is really alarming and makes me think this might be some kind of security breach.
New snippet:
e=f.data[c],g=e[d];l.apply(this,[a,g,e,c])})})}}),this.updateSelected(),this.resetView(),this.trigger("post-body",i)},p.prototype.initServer=function(b,c,d){var e,f=this,g={},i={searchText:this.searchText,sortName:this.options.sortName,sortOrder:this.options.sortOrder};this.options.pagination&&(i.pageSize=this.options.pageSize===this.options.formatAllRows()?this.options.totalRows:this.options.pageSize,i.pageNumber=this.options.pageNumber),(d||this.options.url||th= head
parent = None
q = self.import_it(head, qname, parent)
if q: return q, tail
raise ImportError, "No module named '%s'" % qname
def load_tail(self, q, tail):
m = q
while tail:
i = tail.find('.')
if i < 0: i = len(tail)
head, tail = tail[:i], tail[i+1:]
mname = "%s.%s" % (m.__name__, head)
m = self.import_it(head, mname, m)
if not m:
raise ImportError, "No module named '%s'" % mname
return m
def ensure_fromlist(self, m, fromlist, recursive=0):
for sub in fromlist:
if sub == "*":
if not recursive:
try:
all = m.__all__
except AttributeError:
pass
else:
self.ensure_fromlist(m, all, 1)
continue
if sub != "*" and not hasattr(m, sub):
subname = "%s.%s" % (m.__name__, sub)
submod = self.import_it(sub, subname, m)
if not submod:
raise ImportError, "No module named '%s'" % subname
def import_it(self, partname, fqname, parent, force_load=0):
if not partname:
# completely empty module name should only happen in
# 'from . import' or __import__("")
return parent
if not force_load:
try:
return self.modules[fqname]
except KeyError:
pass
try:
path = parent and parent.__path__
except AttributeError:
return None
partname = str(partname)
stuff = self.loader.find_module(partname, path)
if not stuff:
return None
fqname = str(fqname)
m = self.loader.load_module(fqname, stuff)
if parent:
setattr(parent, partname, m)
return m
def reload(self, module):
name = str(module.__name__)
if '.' not in name:
return self.import_it(name, name, None, force_load=1)
i = name.rfind('.')
pname = name[:i]
parent = self.modules[pname]
return self.import_it(name[i+1:], name, parent, force_load=1)
default_importer = None
current_importer = None
def install(importer = None):
global current_importer
current_importer = importer or default_importer or ModuleImporter()
current_importer.install()
def uninstall():
global current_importer
current_importer.uninstall()
������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������eld="%s"]',l[e]));