Wasmtime ನಲ್ಲಿ ನಿರ್ಣಾಯಕ ದುರ್ಬಲತೆ, WebAssembly ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗಾಗಿ ರನ್‌ಟೈಮ್

ಸರಿಪಡಿಸುವ ಅಪ್‌ಡೇಟ್‌ಗಳು Wasmtime 6.0.1, 5.0.1 ಮತ್ತು 4.0.1 ದುರ್ಬಲತೆಯನ್ನು (CVE-2023-26489) ಸರಿಪಡಿಸಿವೆ, ಇದು ಅಪಾಯದ ನಿರ್ಣಾಯಕ ಮಟ್ಟವನ್ನು ನಿಗದಿಪಡಿಸಲಾಗಿದೆ. ದುರ್ಬಲತೆಯು ಪ್ರತ್ಯೇಕವಾದ WebAssembly ಕೋಡ್‌ಗೆ ಅನುಮತಿಸಲಾದ ಮಿತಿಯ ಹೊರಗಿನ ಮೆಮೊರಿ ಪ್ರದೇಶಕ್ಕೆ ಡೇಟಾವನ್ನು ಬರೆಯಲು ಅನುಮತಿಸುತ್ತದೆ, ಪ್ರತ್ಯೇಕವಾದ WASI ಪರಿಸರದ ಹೊರಗೆ ತಮ್ಮ ಕೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಆಕ್ರಮಣಕಾರರಿಂದ ಸಂಭಾವ್ಯವಾಗಿ ಬಳಸಬಹುದು.

Wasmtime ಎನ್ನುವುದು WASI (WebAssembly ಸಿಸ್ಟಮ್ ಇಂಟರ್ಫೇಸ್) ವಿಸ್ತರಣೆಗಳೊಂದಿಗೆ ವೆಬ್ ಅಸೆಂಬ್ಲಿ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಸಾಮಾನ್ಯ ಸ್ಟ್ಯಾಂಡ್-ಅಲೋನ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಾಗಿ ಚಲಾಯಿಸಲು ರನ್‌ಟೈಮ್ ಆಗಿದೆ. ಟೂಲ್‌ಕಿಟ್ ಅನ್ನು ರಸ್ಟ್ ಭಾಷೆಯಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ ಮತ್ತು ಕ್ರೇನ್‌ಲಿಫ್ಟ್ ಕೋಡ್ ಜನರೇಟರ್‌ನಲ್ಲಿ ಲೀನಿಯರ್ ಮೆಮೊರಿ ಅಡ್ರೆಸಿಂಗ್ ನಿಯಮಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವಲ್ಲಿನ ತಾರ್ಕಿಕ ದೋಷದಿಂದ ದುರ್ಬಲತೆಯು ಉಂಟಾಗುತ್ತದೆ, ಇದು ಹಾರ್ಡ್‌ವೇರ್ ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗಳಿಂದ ಸ್ವತಂತ್ರವಾದ ಮಧ್ಯಂತರ ಪ್ರಾತಿನಿಧ್ಯವನ್ನು x86_64 ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಯಂತ್ರ ಕೋಡ್‌ಗೆ ಅನುವಾದಿಸುತ್ತದೆ.

ನಿರ್ದಿಷ್ಟವಾಗಿ ಹೇಳುವುದಾದರೆ, WebAssembly ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗಾಗಿ, WebAssembly ನಲ್ಲಿ ಅನುಮತಿಸಲಾದ 35-ಬಿಟ್ ವಿಳಾಸಗಳ ಬದಲಿಗೆ 33-ಬಿಟ್ ಪರಿಣಾಮಕಾರಿ ವಿಳಾಸಗಳನ್ನು ಲೆಕ್ಕಹಾಕಲಾಗಿದೆ, ಇದು ಓದಲು ಮತ್ತು ಬರೆಯಲು ಕಾರ್ಯಾಚರಣೆಗಳಿಗೆ ಅನುಮತಿಸಲಾದ ವರ್ಚುವಲ್ ಮೆಮೊರಿಯ ಮಿತಿಯನ್ನು 34 GB ಗೆ ಬದಲಾಯಿಸಿತು, ಆದರೆ ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್ ಪರಿಸರ ಸೆಟ್ಟಿಂಗ್‌ಗಳು ರಕ್ಷಣೆಯನ್ನು ಒದಗಿಸುತ್ತವೆ. ಮೂಲ ವಿಳಾಸದಿಂದ 6 ಜಿಬಿ. ಇದರ ಪರಿಣಾಮವಾಗಿ, ಮೂಲ ವಿಳಾಸದಿಂದ 6 ರಿಂದ 34 GB ವರೆಗಿನ ವರ್ಚುವಲ್ ಮೆಮೊರಿ ವ್ಯಾಪ್ತಿಯು WebAssembly ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಂದ ಓದಲು ಮತ್ತು ಬರೆಯಲು ಲಭ್ಯವಿದೆ. ಈ ಮೆಮೊರಿಯು ಇತರ WebAssembly ಪರಿಸರಗಳನ್ನು ಅಥವಾ WebAssembly ರನ್ಟೈಮ್ ಘಟಕಗಳನ್ನು ಹೋಸ್ಟ್ ಮಾಡಬಹುದು.

Wasmtime ಆವೃತ್ತಿಯನ್ನು ನವೀಕರಿಸಲು ಸಾಧ್ಯವಾಗದಿದ್ದರೆ, ಎಲ್ಲಾ ಲೀನಿಯರ್ ಮೆಮೊರಿ ಪ್ರವೇಶಗಳಲ್ಲಿ ಪ್ರತ್ಯೇಕ ಪರಿಮಿತಿಗಳ ಪರಿಶೀಲನೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು "Config::static_memory_maximum_size(0)" ಆಯ್ಕೆಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವುದು ದೋಷವನ್ನು ನಿರ್ಬಂಧಿಸುವ ಪರಿಹಾರವಾಗಿದೆ (ಮಹತ್ವದ ಕಾರ್ಯಕ್ಷಮತೆಯ ಪೆನಾಲ್ಟಿಗೆ ಕಾರಣವಾಗುತ್ತದೆ) . ಸಮಸ್ಯಾತ್ಮಕ ವರ್ಚುವಲ್ ಮೆಮೊರಿ ಶ್ರೇಣಿಯಲ್ಲಿ ಇರಿಸಲಾದ ಗಾರ್ಡ್ ಪುಟಗಳ ಸಂಖ್ಯೆಯನ್ನು ಹೆಚ್ಚಿಸಲು (ಪ್ರವೇಶಿಸಿದಾಗ ಎಸೆದ ವಿನಾಯಿತಿ) "Config::static_memory_guard_size(1 <36)" ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಬಳಸುವುದು ಮತ್ತೊಂದು ಆಯ್ಕೆಯಾಗಿದೆ (ಹೆಚ್ಚಿನ ಪ್ರಮಾಣದ ವರ್ಚುವಲ್ ಮೆಮೊರಿಯನ್ನು ಕಾಯ್ದಿರಿಸಲು ಮತ್ತು WebAssembly ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಏಕಕಾಲದಲ್ಲಿ ಚಾಲನೆಯಲ್ಲಿರುವ ಸಂಖ್ಯೆಯನ್ನು ಮಿತಿಗೊಳಿಸುವುದು).

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ