zaproxy / zaproxy

The ZAP core project
https://www.zaproxy.org
Apache License 2.0
12.49k stars 2.23k forks source link

OAST extension raises an issue when trying to change the port setting when the port could not be bound #8608

Open fabianfrz opened 2 weeks ago

fabianfrz commented 2 weeks ago

If the OAST plugin is loaded, this crash can happen if the port of the proxy was already in use when the application started up.

ZAP Version: 2.15

Interner Fehler

Message:
    java.lang.NullPointerException: Cannot invoke "String.trim()" because "localAddress" is null
Level:
    SEVERE
Stack Trace:
Cannot invoke "String.trim()" because "localAddress" is null
    org.zaproxy.addon.oast.services.callback.CallbackParam.setLocalAddress(CallbackParam.java:90)
    org.zaproxy.addon.oast.services.callback.CallbackOptionsPanelTab.saveParam(CallbackOptionsPanelTab.java:219)
    org.zaproxy.addon.oast.ui.OastOptionsPanel.lambda$saveParam$1(OastOptionsPanel.java:67)
    java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
    org.zaproxy.addon.oast.ui.OastOptionsPanel.saveParam(OastOptionsPanel.java:67)
    org.parosproxy.paros.view.AbstractParamContainerPanel.saveParam(AbstractParamContainerPanel.java:723)
    org.parosproxy.paros.view.AbstractParamDialog.saveParam(AbstractParamDialog.java:387)
    org.parosproxy.paros.view.AbstractParamDialog$1.actionPerformed(AbstractParamDialog.java:219)
    java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
    java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313)
    java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
    java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
    java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
    java.desktop/java.awt.Component.processMouseEvent(Component.java:6626)
    java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3389)
    java.desktop/java.awt.Component.processEvent(Component.java:6391)
    java.desktop/java.awt.Container.processEvent(Container.java:2266)
    java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5001)
    java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
    java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
    java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
    java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575)
    java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)
    java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
    java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780)
    java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
    java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:775)
    java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
    java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
    java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
    java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
    java.desktop/java.awt.EventQueue$5.run(EventQueue.java:747)
    java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
    java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
    java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:744)
    java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117)
    java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:191)
    java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:236)
    java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:234)
    java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
    java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:234)
    java.desktop/java.awt.Dialog.show(Dialog.java:1080)
    java.desktop/java.awt.Component.show(Component.java:1728)
    java.desktop/java.awt.Component.setVisible(Component.java:1675)
    java.desktop/java.awt.Window.setVisible(Window.java:1036)
    java.desktop/java.awt.Dialog.setVisible(Dialog.java:1016)
    org.parosproxy.paros.extension.AbstractDialog.setVisible(AbstractDialog.java:136)
    org.parosproxy.paros.view.AbstractParamDialog.showDialog(AbstractParamDialog.java:445)
    org.parosproxy.paros.control.MenuToolsControl.options(MenuToolsControl.java:75)
    org.parosproxy.paros.control.MenuToolsControl.options(MenuToolsControl.java:66)
    org.parosproxy.paros.view.MainMenuBar$3.actionPerformed(MainMenuBar.java:246)
    java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
    java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313)
    java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
    java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
    java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:374)
    java.desktop/javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1028)
    java.desktop/javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1072)
    java.desktop/java.awt.Component.processMouseEvent(Component.java:6626)
    java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3389)
    java.desktop/java.awt.Component.processEvent(Component.java:6391)
    java.desktop/java.awt.Container.processEvent(Container.java:2266)
    java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5001)
    java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
    java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
    java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
    java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575)
    java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)
    java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
    java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780)
    java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
    java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:775)
    java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
    java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
    java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
    java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
    java.desktop/java.awt.EventQueue$5.run(EventQueue.java:747)
    java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
    java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
    java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:744)
    java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
kingthorin commented 2 weeks ago

Thanks for the report.

In the future please use one of the proper issue templates, so that all the proper details are collected.