tiagomacul
Giga Sage

Gemini_Generated_Image_tts7iatts7iatts7.png

.

Como parte do nosso Guia Definitivo para Blindar sua Instância, inspirado nas melhores práticas de hardening discutidas em nosso livro sobre ServiceNow Security, hoje vamos focar em uma configuração crítica de Instance Hardening: a desativação do JQuery UI Legado.

 

🔍 O que é o "Legacy JQuery UI Usage"?

Muitas instâncias mantêm versões antigas da biblioteca JQuery UI por questões de compatibilidade com customizações feitas há anos. No entanto, essas versões "prepatched" possuem vulnerabilidades conhecidas que podem ser exploradas por atacantes.

A propriedade responsável por esse controle é a glide.jquery_ui.legacy.

 

 

🚨 O Risco de Segurança

Quando essa propriedade está definida como true, a instância carrega versões do JQuery UI que não recebem mais patches de segurança da ServiceNow. Isso abre portas para ataques baseados em vulnerabilidades de bibliotecas desatualizadas.

 

Na Release Zurich, a recomendação de segurança é clara: esta propriedade deve ser definida como false para garantir que apenas as versões atuais e suportadas sejam integradas.

 

🛠️ Como ajustar e atingir a conformidade (Compliance)

  1. Acesse o Security Center: Vá até as configurações de Instance Hardening.

  2. Localize a configuração: "Disable Legacy JQuery UI Usage".

  3. Propriedade de Sistema: Procure por glide.jquery_ui.legacy na tabela sys_properties.

  4. Altere o valor para: false.

 

https://<instance>.service-now.com/now/nav/ui/classic/params/target/sys_properties.do%3Fsys_id%3D10cd8445fb351210f106fa126eefdc4d%26sysparm_record_target%3Dsys_properties%26sysparm_record_row%3D1%26sysparm_record_rows%3D1%26sysparm_record_list%3DnameSTARTSWITHglide.jquery_ui.legacy%255EORDERBYDESCsys_updated_on

 

tiagomacul_3-1767995453509.png

"If "glide.jquery_ui.legacy" is not set to the recommended value of "false", then older prepatched JQuery UI versions are used which will introduce unpatched vulnerabilities in the library. This could potentially lead to security risks arising from attacks on vulnerabilities discovered in outdated JQuery UI library versions. When false, integrates the current supported JQuery UI version. The system property is a failsafe in case any organizations depend on legacy versions to run their custom implementations.

The Glide Property prevents older prepatched JQuery UI versions from being used which introduce unpatched vulnerabilities in the library. The Glide Property is a failsafe in case any organizations depend on the non-patched versions to run their custom implementations."

 

--PT-BR

Se "glide.jquery_ui.legacy" não estiver definido com o valor recomendado "false", versões antigas e pré-corrigidas do jQuery UI serão usadas, o que introduzirá vulnerabilidades não corrigidas na biblioteca. Isso pode levar a riscos de segurança decorrentes de ataques a vulnerabilidades descobertas em versões desatualizadas do jQuery UI. Quando definido como false, integra a versão atual suportada do jQuery UI. Essa propriedade do sistema serve como medida de segurança caso alguma organização dependa de versões antigas para executar suas implementações personalizadas.

 

A propriedade Glide impede o uso de versões antigas e pré-corrigidas do jQuery UI, que introduzem vulnerabilidades não corrigidas na biblioteca. Essa propriedade serve como medida de segurança caso alguma organização dependa de versões não corrigidas para executar suas implementações personalizadas.

 

 

⚠️ Ponto de Atenção: O Failsafe

A ServiceNow mantém essa propriedade como um "failsafe" (mecanismo de segurança) para organizações que possuem implementações customizadas muito específicas que dependem de comportamentos antigos da biblioteca.

Antes de alterar em Produção:

  • Teste em Sub-Produção.

  • Verifique Service Portals customizados, UI Pages ou UI Macros que utilizem JQuery UI intensivamente.

  • Certifique-se de que nada "quebrou" visualmente ou funcionalmente.

 

 

Estratégias de Identificação: Onde o jQuery está escondido?

Antes de aplicar o bloqueio ou a atualização das bibliotecas, é vital mapear o uso atual para evitar a quebra de funcionalidades críticas (o famoso break-fix). No ServiceNow, o jQuery costuma estar "escondido" em customizações de interface.

Aqui estão os três métodos principais para identificar o uso antes da blindagem:

1. Varredura de Código (Scripts de Cliente)

A forma mais rápida é realizar uma busca textual nas tabelas que carregam lógica para o navegador. Procure pelos termos jQuery(, $. ou $(' nas seguintes tabelas:

  • UI Scripts (sys_ui_script😞 Especialmente os marcados como "Global".

  • Service Portal Widgets (sp_widget😞 Verifique o campo Client Controller.

  • Client Scripts (sys_script_client) e UI Policies (sys_ui_policy😞 Em scripts que manipulam o DOM diretamente.

Dica Pro: Utilize a ferramenta "Code Search" dentro do ServiceNow Studio

para buscar por jQuery em todos os arquivos da aplicação de uma só vez.

 

tiagomacul_0-1768834562415.png

 

 

 

2. Auditoria de Dependências no Service Portal

Muitos portais utilizam bibliotecas legadas carregadas como dependências de página ou widget.

  • Aceda a Service Portal > Dependencies.

  • Filtre por dependências que referenciam arquivos .js com "jquery" no nome.

  • Verifique quais widgets estão associados a essas dependências para planear a substituição por APIs nativas ou JS puro (Vanilla JS).

3. Diagnóstico em Tempo Real (Browser Console)

Para identificar usos que o código estático não revela (como scripts carregados dinamicamente):

  1. Abra a página suspeita na instância.

  2. Pressione F12 para abrir o Developer Tools e vá ao Console.

  3. Execute o comando: console.log(jQuery.fn.jquery);

    • Se retornar uma versão (ex: 1.12.4), o jQuery está ativo e carregado.

    • Use a aba Network para filtrar por arquivos .js e identificar a origem do carregamento da biblioteca.


Qual o próximo passo após identificar?

Uma vez identificado o uso, a recomendação é seguir a regra do "Shift-Left":

  • Substitua manipulações de DOM por g_form ou g_user.

  • Remova dependências desnecessárias.

  • Teste em ambiente de Sub-Produção com a propriedade de bloqueio ativa antes de mover para Produção.

 


Conclusão: Evoluindo 1% ao dia

Manter sua instância segura não é um evento único, mas um processo contínuo de eliminação de legados técnicos. Ao desativar o JQuery UI antigo, você remove uma camada de risco desnecessária.

Este artigo faz parte da nossa série de aprofundamento do SSC (Security Center). Confira os links anteriores no nosso post central!


Créditos e Colaboração

Este conteúdo foi revisado e enriquecido pelos especialistas da comunidade:

  • Tiago Macul (Liderança e Estratégia SSC)

  • Comunidade NowBridge 🚀

#ServiceNow #Security #CyberSecurity #SSC #InstanceHardening #JQueryUI #ServiceNowBrasil #NowBridge #TiagoMacul

 

tiagomacul_0-1767994611202.jpeg

 

 

tiagomacul_2-1767994748474.jpeg

 

 

tiagomacul_1-1767994623908.png

 

 

Version history
Last update:
yesterday
Updated by:
Contributors