Zyxel NAS cihazlarında, onları Mirai benzeri bir botnet’ten gelen saldırılara maruz bırakan yeni bir güvenlik açığı olan CVE-2024-29973 keşfedildi.
Bir Python kod ekleme kusuru olan bu güvenlik açığı, siber güvenlik uzmanları ve benzer kullanıcılar arasında önemli endişelere yol açtı.
Outpost24 bloguna göre güvenlik açığı, Zyxel NAS cihazlarının web sunucusunun simZysh uç noktasındaki bir kusurdan kaynaklanıyor.
Önceki bir güvenlik açığına (CVE-2023-27992) yönelik yama sırasında tanıtılan bu uç nokta, yanlışlıkla aynı güvenlik hatalarını tekrarladı.
Temel sorun, uygun şekilde temizlenmediği takdirde rastgele kod çalıştırma potansiyeliyle bilinen eval() işlevinin kullanılmasında yatmaktadır.
Shadowserver Foundation’ın yakın zamanda attığı bir tweet, Zyxel’in NAS Cihazlarının Mirai’ye benzer bir botnet tarafından saldırıya uğradığını ve CVE-2024-29973’ten yararlandığını paylaştı.
Zyxel NAS cihazlarının Python web sunucusundaki simZysh işlevi, zyshcgi çıktısını simüle etmek için tasarlanmıştır.
Scan Your Business Email Inbox to Find Advanced Email Threats - Try AI-Powered Free Threat Scan
Ancak işlevin uygulanması birkaç kritik kusur içerir:
sınıf mainApplication(nesne):
# Snip...
def simZysh(self, *url_args, **request_args):
"""Simulate zyshcgi's output. GUI's broker shall set command as the following format:
'controller_name action_name {"arg1": value, "arg2": value, ...}'
"""
for i in url_args:
if not check_str_format(i, 'url'):
return tools_cherrypy.ARG_ERROR
for key, value in request_args.items():
if not check_str_format(key, 'request'):
if not check_list(key):
return tools_cherrypy.ARG_ERROR
if not check_str_format(value, 'request'):
if not check_list(value):
return tools_cherrypy.ARG_ERROR
r_value = {}
c_index = 0
while True:
c_key = 'c%d' % c_index
if request_args.has_key(c_key):
controller_n, action_n, args = request_args[c_key].split(' ', 2)
try:
controller = __import__('controllers.%s' % controller_n)
tmp_result = eval('controller.%s.%s(cherrypy=%s, arguments=%s)' % (
controller_n, action_n, 'cherrypy', args))
if not tmp_result:
raise ValueError
r_type = type(tmp_result)
if r_type == list:
r_value['zyshdata%d' % c_index] = tmp_result
else:
r_value['zyshdata%d' % c_index] = [
tmp_result]
r_value['errno%d' % c_index] = 0
r_value['errmsg%d' % c_index] = _('OK')
except:
r_value['zyshdata%d' % c_index] = []
r_value['errno%d' % c_index] = -99999
r_value['errmsg%d' % c_index] = _('Execute Error')
else:
break
c_index += 1
return r_value
simZysh.exposed = True
Sömürü ve Etki
Bu güvenlik açığı, saldırganların dikkatle hazırlanmış istekler yoluyla rastgele Python kodu eklemesine olanak tanıyor.
Saldırganlar mod_auth_zyxel modülünü atlayarak ve Python filtrelerinden kaçınarak cihaz üzerinde komutlar çalıştırabilirler. Örneğin, kötü amaçlı bir veri şöyle görünebilir:
POST /cmd,/simZysh/register_main/setCookiec0='storage_ext_cgi CGIGetExtStoInfo None) and False or __import__("subprocess").check_output("makekey", shell=True)#'
Bu veri, makekey komutunu yürütmek için eval() işlevini kullanır ve cihazda potansiyel olarak bir arka kapı açar.
Azaltma ve Öneriler
Zyxel’e bu güvenlik açığı bildirildi ve yakında bir yama yayınlaması bekleniyor.
Bu arada kullanıcılara şunları yapmaları tavsiye edilir:
- Uzaktan Erişimi Devre Dışı Bırak: Kötüye kullanımı önlemek için NAS cihazlarına uzaktan erişimi kısıtlayın.
- Ağ Segmentasyonunu Uygula: Olası hasarı sınırlandırmak için NAS cihazlarını ağın geri kalanından yalıtın.
- Ağ Trafiğinin İzlenmesi: Devam eden bir saldırıyı gösteren olağandışı ağ etkinliğini izleyin.
CVE-2024-29973’ün keşfi, IoT cihazlarının güvenliğinde devam eden zorlukların altını çiziyor.
Saldırganlar bu tür güvenlik açıklarından yararlanmaya devam ederken, üreticilerin sağlam güvenlik önlemleri alması ve kullanıcıların da tetikte kalması hayati önem taşıyor.
Free Webinar! 3 Security Trends to Maximize MSP Growth -> Register For Free