0-ਦਿਨ ਲੀਨਕਸ IPv6 ਸਟੈਕ ਕਮਜ਼ੋਰੀ ਜੋ ਰਿਮੋਟ ਕਰਨਲ ਕਰੈਸ਼ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ

ਲੀਨਕਸ ਕਰਨਲ ਵਿੱਚ ਇੱਕ ਅਸੁਰੱਖਿਅਤ (0-ਦਿਨ) ਕਮਜ਼ੋਰੀ (CVE-2023-2156) ਬਾਰੇ ਜਾਣਕਾਰੀ ਦਾ ਖੁਲਾਸਾ ਕੀਤਾ ਗਿਆ ਹੈ, ਜੋ ਵਿਸ਼ੇਸ਼ ਤੌਰ 'ਤੇ ਡਿਜ਼ਾਈਨ ਕੀਤੇ IPv6 ਪੈਕੇਟ (ਪੈਕੇਟ-ਆਫ-ਡੇਥ) ਭੇਜ ਕੇ ਸਿਸਟਮ ਨੂੰ ਰੋਕਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਸਮੱਸਿਆ ਸਿਰਫ ਉਦੋਂ ਪ੍ਰਗਟ ਹੁੰਦੀ ਹੈ ਜਦੋਂ RPL (ਘੱਟ-ਪਾਵਰ ਅਤੇ ਨੁਕਸਾਨਦੇਹ ਨੈੱਟਵਰਕਾਂ ਲਈ ਰੂਟਿੰਗ ਪ੍ਰੋਟੋਕੋਲ) ਪ੍ਰੋਟੋਕੋਲ ਲਈ ਸਮਰਥਨ ਸਮਰੱਥ ਹੁੰਦਾ ਹੈ, ਜੋ ਡਿਸਟ੍ਰੀਬਿਊਸ਼ਨਾਂ ਵਿੱਚ ਡਿਫੌਲਟ ਤੌਰ 'ਤੇ ਅਸਮਰੱਥ ਹੁੰਦਾ ਹੈ ਅਤੇ ਮੁੱਖ ਤੌਰ 'ਤੇ ਉੱਚ ਪੈਕੇਟ ਘਾਟੇ ਵਾਲੇ ਵਾਇਰਲੈੱਸ ਨੈੱਟਵਰਕਾਂ ਵਿੱਚ ਕੰਮ ਕਰਨ ਵਾਲੇ ਏਮਬੈਡਡ ਡਿਵਾਈਸਾਂ 'ਤੇ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ।

ਕਮਜ਼ੋਰੀ RPL ਪ੍ਰੋਟੋਕੋਲ ਪਾਰਸਿੰਗ ਕੋਡ ਵਿੱਚ ਬਾਹਰੀ ਡੇਟਾ ਦੀ ਗਲਤ ਪ੍ਰੋਸੈਸਿੰਗ ਦੇ ਕਾਰਨ ਹੁੰਦੀ ਹੈ, ਜਿਸ ਨਾਲ ਅਸਰਟ ਫੇਲ ਹੁੰਦਾ ਹੈ ਅਤੇ ਕਰਨਲ ਪੈਨਿਕ ਸਥਿਤੀ ਵਿੱਚ ਜਾਂਦਾ ਹੈ। IPv6 RPL ਪੈਕੇਟ ਹੈਡਰ ਨੂੰ k_buff (ਸਾਕੇਟ ਬਫਰ) ਢਾਂਚੇ ਵਿੱਚ ਪਾਰਸ ਕਰਨ ਤੋਂ ਪ੍ਰਾਪਤ ਡੇਟਾ ਨੂੰ ਰੱਖਣ ਵੇਲੇ, ਜੇਕਰ CmprI ਫੀਲਡ ਨੂੰ 15, Segleft ਫੀਲਡ ਨੂੰ 1, ਅਤੇ CmprE ਨੂੰ 0 ਤੇ ਸੈੱਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਪਤਿਆਂ ਵਾਲਾ 48-ਬਾਈਟ ਵੈਕਟਰ ਡੀਕੰਪ੍ਰੈਸ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। 528 ਬਾਈਟ ਤੱਕ ਅਤੇ ਅਜਿਹੀ ਸਥਿਤੀ ਦਿਖਾਈ ਦਿੰਦੀ ਹੈ ਜਿੱਥੇ ਬਫਰ ਲਈ ਨਿਰਧਾਰਤ ਕੀਤੀ ਮੈਮੋਰੀ ਕਾਫ਼ੀ ਨਹੀਂ ਹੈ। ਇਸ ਸਥਿਤੀ ਵਿੱਚ, skb_push ਫੰਕਸ਼ਨ, ਡੇਟਾ ਨੂੰ ਢਾਂਚੇ ਵਿੱਚ ਧੱਕਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ, ਡੇਟਾ ਦੇ ਆਕਾਰ ਅਤੇ ਬਫਰ ਵਿਚਕਾਰ ਅਸੰਗਤਤਾ ਦੀ ਜਾਂਚ ਕਰਦਾ ਹੈ, ਬਫਰ ਸੀਮਾ ਤੋਂ ਬਾਹਰ ਲਿਖਣ ਨੂੰ ਰੋਕਣ ਲਈ ਇੱਕ ਪੈਨਿਕ ਸਥਿਤੀ ਪੈਦਾ ਕਰਦਾ ਹੈ।

ਉਦਾਹਰਨ ਸ਼ੋਸ਼ਣ: # ਅਸੀਂ scapy.all ਆਯਾਤ * ਆਯਾਤ ਸਾਕੇਟ ਤੋਂ ਪੈਕੇਟ ਬਣਾਉਣ ਲਈ Scapy ਦੀ ਵਰਤੋਂ ਕਰਾਂਗੇ # ਆਪਣੇ LAN ਇੰਟਰਫੇਸ ਤੋਂ IPv6 ਦੀ ਵਰਤੋਂ ਕਰੋ DST_ADDR = sys.argv[1] SRC_ADDR = DST_ADDR # ਅਸੀਂ ਪੈਕੇਟ ਭੇਜਣ ਲਈ ਸਾਕਟਾਂ ਦੀ ਵਰਤੋਂ ਕਰਾਂਗੇ sockfd = socket.socket(socket.AF_INET6, socket.SOCK_RAW, socket.IPPROTO_RAW) # ਪੈਕੇਟ ਨੂੰ ਤਿਆਰ ਕਰੋ # ਕਿਸਮ = 3 ਇਸ ਨੂੰ ਇੱਕ RPL ਪੈਕੇਟ ਬਣਾਉਂਦਾ ਹੈ # ਪਤਿਆਂ ਵਿੱਚ 3 ਪਤੇ ਹੁੰਦੇ ਹਨ, ਪਰ ਕਿਉਂਕਿ CmprI 15 ਹੈ, # ਪਹਿਲੇ ਦੋ ਪਤਿਆਂ ਵਿੱਚੋਂ ਹਰੇਕ ਓਕਟੇਟ ਹੈ ਸੰਕੁਚਿਤ ਪਤਾ # Segleft = 1 ਐਂਪਲੀਫਿਕੇਸ਼ਨ ਨੂੰ ਟਰਿੱਗਰ ਕਰਨ ਲਈ ਸਮਝਿਆ ਜਾਂਦਾ ਹੈ # lastentry = 0xf0 CmprI ਨੂੰ 15 ਅਤੇ CmprE ਨੂੰ 0 p = IPv6(src=SRC_ADDR, dst=DST_ADDR) / IPv6ExtHdrSegmentRouting(type:"es=3,") 'ਤੇ ਸੈੱਟ ਕਰਦਾ ਹੈ :", "a8::", "a7::"], segleft=6, lastentry=1xf0) # ਇਸ ਦੁਸ਼ਟ ਪੈਕੇਟ ਨੂੰ ਭੇਜੋ sockfd.sendto(bytes(p), (DST_ADDR, 0))

ਧਿਆਨਯੋਗ ਹੈ ਕਿ ਕਰਨਲ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਜਨਵਰੀ 2022 ਵਿੱਚ ਕਮਜ਼ੋਰੀ ਬਾਰੇ ਸੂਚਿਤ ਕੀਤਾ ਗਿਆ ਸੀ ਅਤੇ ਪਿਛਲੇ 15 ਮਹੀਨਿਆਂ ਵਿੱਚ ਉਨ੍ਹਾਂ ਨੇ ਸਤੰਬਰ 2022, ਅਕਤੂਬਰ 2022 ਅਤੇ ਅਪ੍ਰੈਲ 2023 ਵਿੱਚ ਪੈਚ ਜਾਰੀ ਕਰਦੇ ਹੋਏ ਤਿੰਨ ਵਾਰ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਸੀ, ਪਰ ਹਰ ਵਾਰ ਫਿਕਸ ਕੀਤੇ ਗਏ ਸਨ। ਕਾਫ਼ੀ ਨਹੀਂ ਹੈ ਅਤੇ ਕਮਜ਼ੋਰੀ ਨੂੰ ਦੁਬਾਰਾ ਪੈਦਾ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਅੰਤ ਵਿੱਚ, ZDI ਪ੍ਰੋਜੈਕਟ, ਜਿਸ ਨੇ ਕਮਜ਼ੋਰੀ ਨੂੰ ਠੀਕ ਕਰਨ ਲਈ ਕੰਮ ਦਾ ਤਾਲਮੇਲ ਕੀਤਾ, ਨੇ ਕਰਨਲ ਵਿੱਚ ਕਾਰਜਸ਼ੀਲ ਫਿਕਸ ਉਪਲਬਧ ਹੋਣ ਦੀ ਉਡੀਕ ਕੀਤੇ ਬਿਨਾਂ ਕਮਜ਼ੋਰੀ ਬਾਰੇ ਵਿਸਤ੍ਰਿਤ ਜਾਣਕਾਰੀ ਜਾਰੀ ਕਰਨ ਦਾ ਫੈਸਲਾ ਕੀਤਾ।

ਇਸ ਤਰ੍ਹਾਂ, ਕਮਜ਼ੋਰੀ ਅਜੇ ਵੀ ਸਥਿਰ ਹੈ. ਖਾਸ ਤੌਰ 'ਤੇ, 6.4-rc2 ਕਰਨਲ ਵਿੱਚ ਸ਼ਾਮਲ ਪੈਚ ਬੇਅਸਰ ਹੈ। ਉਪਭੋਗਤਾਵਾਂ ਨੂੰ ਇਹ ਜਾਂਚ ਕਰਨ ਦੀ ਸਲਾਹ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ ਕਿ ਉਹਨਾਂ ਦੇ ਸਿਸਟਮਾਂ 'ਤੇ RPL ਪ੍ਰੋਟੋਕੋਲ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕੀਤੀ ਗਈ ਹੈ, ਜੋ ਕਿ sysctl -a | ਕਮਾਂਡ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। grep -i rpl_seg_enabled

ਸਰੋਤ: opennet.ru

ਇੱਕ ਟਿੱਪਣੀ ਜੋੜੋ